要在多个on()函数中共享的全局变量

时间:2013-09-06 02:49:28

标签: jquery

如何在我的情况下将x设置为全局变量?

$(document).on( 'click', '#something', function (){
   x = $(#etc);
});


$(document).on( 'click', '#somethingElse', function (){

 alert(x) <-- unidentified here 

});

即使我将两个on()绑定在一起,x仍然是“无法通行的”

3 个答案:

答案 0 :(得分:1)

<script type="text/javascript">
var x;

$(document).on( 'click', '#something', function (){
   x = $('#etc');
});


$(document).on( 'click', '#somethingElse', function (){

 alert(x);

});

</script>

示例:http://jsfiddle.net/2wS4k/

答案 1 :(得分:0)

您必须将x声明为全局变量。因此,它可以从任何函数中更改/声明。

var x;
$(document).on( 'click', '#something', ...
$(document).on( 'click', '#somethingElse', ...

你必须将选择器作为字符串传递:

$("#etc") // not $(#etc)

答案 2 :(得分:0)

您也可以这样做:

    <script type="text/javascript">

    var Test = {

        init:function() {

             $(document).on( 'click', '#something', function (){
                 Test.x = $('#etc');
             });


             $(document).on( 'click', '#somethingElse', function (){

             alert(Test.x);

             });
        }

    }

    $(document).ready(function() {
        Test.init();
    });

    </script>