Jquery ChangeEvent全局变量

时间:2013-04-03 10:11:34

标签: javascript jquery events jquery-mobile global-variables

我有这段代码。

    var anyChange = false;

    function init(){

    $('.saveSettingsEvent').bind("change",function(){
          anyChange  = true ;   
        }
     );
    }

...

 onload='init()

事件被触发,但变量(anyChange)仍为'true',仅在匿名函数内。

我用:

  • Jquery 1.8.2

  • JqueryMobile 1.2

我错了吗? Thnx!

2 个答案:

答案 0 :(得分:1)

我为你写了一个例子。

var anyChange = false;

$(function() {
    $('.saveSettingsEvent').bind('change',function(){
        anyChange  = true ;   
    });
    $('button').click(function() {
        alert(anyChange);
    });
});

http://jsfiddle.net/YuUVd/2/

它按预期工作。 anyChange设置为true并保持为真。

因此,如果您需要更多帮助,我们需要更多信息。

我认为,其他一些代码会将您的变量设置为false,或者您的更改事件永远不会被触发......

答案 1 :(得分:0)

真实解决方案

(待定)

解决方法

我在Body的末尾创建了一个带有自定义属性的自定义标记。

触发事件时,将属性 res

设置为True
$(function() {
    $('.saveSettingsEvent').bind('change',function(){
        $("#anychange").attr('res','true');  
    });

});

如果

var resToSave = $("#anychange").attr('res');
if(resToSave == 'true'){
   // Do Something
   ...
   // Reset attr
   $("#anychange").attr('res','false');
}