我可以举办自己的活动吗?

时间:2014-02-26 09:01:07

标签: javascript jquery

假设我有一个变量如下:

var i=0;

如果有人更改了i的值,我需要运行一些函数,如下所示

function event_iChanged(){
   alert("I Changed");
}

我如何在JQuery或Javascript中执行此操作?

3 个答案:

答案 0 :(得分:-1)

您可以为文档添加监听器

$(document).on("myEvent", event_iChanged);

无论何时更改变量的值,只需调用

即可
$.event.trigger({
    type: "myEvent",
    message: "i changed!",
    time: new Date()
});

答案 1 :(得分:-1)

解决方案 - Mutator方法

也许你应该考虑使用这样的mutator method(getter / setter):

function SetValue(reference, newvalue) {
  console.log("Old value: " + reference);
  console.log("New value: " + newvalue);
  reference = newvalue;
}
非面向对象环境中的

Mutator方法:

  

对要修改的变量的引用与新值一起传递给mutator。在这种情况下,编译器不能限制代码绕过mutator方法并直接更改变量。开发人员有责任确保变量仅通过mutator方法修改,而不是直接修改。

这意味着您应该像这样使用它。

var i = 0;
SetValue(i, 10);

答案 2 :(得分:-2)

解决方案可能是使用观察者模式,看看here

否则,您可以考虑创建一个将值设置为x的函数,而不是创建wacther或使用不同的插件,此外,还可以调用另一个函数:

而不是:

x = 3;

你将拥有:

set(x,3);

其中:

var set = function(v, value) {
    v = value;
    callback(v);
}

DEMO此处。