2011-11-09 66 views
0

我得到一個div像這樣的ID的變量:設置變量,並傳遞給另一個函數

var value = $(this).attr('id').replace("-", "");

我的HTML看起來像這樣:

<li id="item-1">1</li> 
<li id="item-2">2</li> 
<li id="item-3">3</li> 

所以我相應地得到item1,item2和item3。

現在,當我點擊並將值設置爲ID時,會打開一個對話框。在對話框中輸入一個輸入和一個好的按鈕。當好的時候,我想再次獲得該變量。

那麼,我該如何傳遞變量或如何讓我知道我正在談論的對話框ID。

這裏有一個例子:單擊處理的範圍之外

$("#bxs li").click(function() { 
      var value = $(this).attr('id').replace("-", ""); 

       $("#dialog").dialog("open"); 
       return false; 

     }); 


    // Okay button from the dialog. 


     $(".okaybtn").click(function() { 

// value is the variable from the previous function 
       localStorage.setItem(value , "test"); 
        $("#dialog").dialog("close");return false; 

      }); 

回答

1

jQuery的數據:

$("#bxs li").click(function() { 
    var value = $(this).attr('id').replace("-", ""); 

    $("#dialog").data("clickedfrom", value).dialog("open"); 
    return false; 

}); 


// Okay button from the dialog. 

$(".okaybtn").click(function() { 
    var $dialog = $("#dialog"); 
    // value is the variable from the previous function 
    localStorage.setItem($dialog.data("clickedfrom"), "test"); 
    $dialog.dialog("close"); 
    return false; 

}); 

範圍的變量:

(function(){ 
var value; 
    $("#bxs li").click(function() { 
     value = $(this).attr('id').replace("-", ""); 

     $("#dialog").dialog("open"); 
     return false; 

    }); 


    // Okay button from the dialog. 

    $(".okaybtn").click(function() { 
     // value is the variable from the previous function 
     localStorage.setItem(value, "test"); 
     $("#dialog").dialog("close"); 
     return false; 

    }); 
})() 
+0

我不知道我在做什麼錯,但都沒有工作。我對這兩個都沒有定義。你介意看我的小提琴嗎? – jQuerybeast

+0

我在這裏有jsfiddle:http://jsfiddle.net/Dhsrf/它的工作原理。你的在哪裏? – Esailija

+0

在第一個答案上,我錯過了對話框的變量。非常感謝先生 – jQuerybeast

0

申報值,這樣就可以和其他的代碼塊訪問它。

var value; 
$("#bxs li").click(function() { 
    value = $(this).attr('id').replace("-", ""); 

    $("#dialog").dialog("open"); 
    return false; 
}); 

$(".okaybtn").click(function() { 
    // value is the variable from the previous function 
    localStorage.setItem(value , "test"); 
    $("#dialog").dialog("close"); 
    return false;  
}); 
+0

這不是我的問題。如果我提醒okaybtn的var值,它將不起作用。 – jQuerybeast

+0

它不起作用? – jrummell

+0

警報(值)我得到未定義。 – jQuerybeast

0

1.You可以將其存儲爲全局變量 - 不推薦
在隱藏輸入 2.You可存儲選擇的變量值
3.You可以發送值id作爲參數,以對話框的功能。

+0

你能解釋第三個嗎? – jQuerybeast

0

我不完全確定你在做什麼,但是如果你在兩個函數之外聲明value,它應該可以工作,因爲它會給這個變量一個全局範圍,這兩個函數都可以訪問它。

var value; 
    $("#bxs li").click(function() { 
      value = $(this).attr('id').replace("-", ""); 

       $("#dialog").dialog("open"); 
       return false; 

     }); 


    // Okay button from the dialog. 


     $(".okaybtn").click(function() { 

// value is the variable from the previous function 
       localStorage.setItem(value , "test"); 
        $("#dialog").dialog("close");return false; 

      }); 
+0

嘗試了它,我得到okaybtn,如果我提醒價值,我得到undefined。 – jQuerybeast

-1

爲了處理jQuery UI對話框中的表單輸入,您可以使用buttons選項。

$("#dialog").dialog({ 
buttons: { 
    "Ok": function() { 
      value = $('#dialoginputfield').val(); 
      $(this).dialog("close"); 
     } 
    } 
}); 
+0

這不是我的問題......當你點擊一個鏈接時,它會給你它的ID。當你改變功能(比如你的功能)時,它不知道你在說什麼變量。 – jQuerybeast

+0

我不打算提供完整的工作解決方案。我只是指出了一種用全局範圍變量處理對話框輸入的方法。我想我應該讓你澄清你的問題。 – Ketola

相關問題