java 变量值改变事件,如何用js或者jquery监控一个变量改变后触发某给事件100分待...

怎么用js或者jquery监控一个变量改变后触发某给事件100分在线等待

怎么用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)}

请问各路高手怎么实现?

------解决思路----------------------

function applyA(val){

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

------解决思路----------------------

使用一个临时变量tempA,初始化和每次a值改变时把a值赋给tempA,然后所有的程序起始判断if(a==tempA){}...

------解决思路----------------------

//当全局变量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);

希望对你有帮助

------解决思路----------------------

最简单的方法是,在给a赋值的时候绑定一个事件。

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*/

------解决思路----------------------

11 的想法很好,但是set_a_value这个方法,我必须要明确知道第一个参数是几,然后调用什么样的函数,但是真正用的时候,并不是这样的,a的值不确定,你这里必须要构造一个对象来存储 a的值和方法函数的对应关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值