怎么用js或者jquery监控一个全变量改变后触发某给事件。
是这样的,我定义了一个全局变量
var a=0;
当a的值改变时,触发对应的事件。比如:
给a赋值a=1时调用function test1(){alert(1)}
给a赋值a=2时调用function test2(){alert(2)}
给a赋值a=3时调用function test3(){alert(3)}
请问各路高手怎么实现?
jQueryjs
是这样的,我定义了一个全局变量
var a=0;
当a的值改变时,触发对应的事件。比如:
给a赋值a=1时调用function test1(){alert(1)}
给a赋值a=2时调用function test2(){alert(2)}
给a赋值a=3时调用function test3(){alert(3)}
请问各路高手怎么实现?
jQueryjs
不可控的话就只能轮询了
a = val;
switch(val){
case 1: test1(); break;
case 2: test2(); break;
}
}我猜测你不是为了给A赋值,应该是有其他函数给A赋值,然后根据A的值去调用其他函数。
如果你用JQuery1.7以上版本,可以这样:
function eventHandle(val){
switch(val){
case 1: test1(); break;
case 2: test2(); break;
}
};
var events = $.Callbacks();
callbacks.add(eventHandle);function otherFunction(){
........... // 私有的处理逻辑
events.fire(1); // 触发回调函数
........... // 私有的处理逻辑
}可以再进一步,把1、2、3、4定义成常量:var S_BEGIN = 1,S_RUNNING = 2, S_END=3;然后在Fire函数中使用常量,这样代码看上去就很舒服了:events.fire(S_BEGIN);
events.fire(S_RUNNING);
events.fire(S_END);
//当全局变量a = 1时执行
function test1(){
alert(1);
}//当全局变量a = 2时执行
function test2(){
alert(2);
}//当全局变量a = 3时执行
function test3(){
alert(3);
}var a = 0;
function lisner(){
if (a == 1){
test1();
clearInterval(lisnerID);
} if (a == 2){
test2();
clearInterval(lisnerID);
} if (a == 3){
test3();
clearInterval(lisnerID);
} if (a > 3){
clearInterval(lisnerID);
}
}var lisnerID = setInterval(lisner,100);
希望对你有帮助
var a =0;
/*很简单的一个方法,就实现了,你给a赋值的时候,绑定了一个事件,这个事件参数,event你可以自己传入一个函数。这样你以调用给a赋值的方法,set_a_value 就会执行这个绑定的事件*/
var set_a_value = function(_a,event){
a=_a;
if(event){
event();
}
};/**调用例子*/
var test = function(){alert(a)}
set_a_value(1,test);
/**输出的值就是1*/
set_a_value(1,map["1"]);