在Click上设置变量并将其传递给另一个函数

时间:2011-11-09 13:23:30

标签: javascript jquery variables dialog

我得到一个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时,将打开一个对话框。在对话框里面有一个输入和一个好的按钮。当按下ok时我想再次获得该变量。

那我怎么能传递变量呢?我怎么能知道我正在为那个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;

            });

5 个答案:

答案 0 :(得分: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;

    });
})()

答案 1 :(得分:0)

声明值在click处理程序范围之外,以便您可以从其他代码块访问它。

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;    
 });

答案 2 :(得分:0)

1.您可以将其存储为全局变量 - 不推荐使用 2.您可以将选定的变量值存储在隐藏输入中 3.您可以将id值作为对话函数的参数发送。

答案 3 :(得分: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;

            });

答案 4 :(得分:-1)

为了在jQuery UI对话框中处理表单输入,您可以使用buttons选项。

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