2011-05-13 150 views
1

如果以前曾问过这个问题,我表示歉意,但是,有没有办法将一个事件监听器/处理程序添加到Javascript对象?最好使用JQuery。javascript对象的jquery事件监听器

如:

var foo; 
$(foo).bind('change', function() { 
    alert("Foo has changed!"); 
}); 

我已经试过了,但好像没有什么改变。这只适用于DOM元素吗?

编辑: 我需要每次音频或视频标签引发错误时触发一个事件。最初,我使用间隔来检查'media.error'对象是否为空,但是这使用了额外的处理能力,我想避免它。

编辑2:显然我错了,我发现最简单的方法是将“onerror”属性添加到视频/音频标签。

回答

1

我同意Cheeso对你来说说你真正想要做什么更重要,但是你的具体问题的一个解决方法可能是将你的变量存储在一个对象中,只能通过getter/setter提供访问,然后你可以在二传手中做你想做的事情。例如

function data() { 
    var foo = 0; 

    this.setFoo = function(newVal) { 
     foo = newVal; 
     alert(foo); 
    }; 
} 

var theData = new data(); 

theData.setFoo(5); 
0

是的,这是正确的。你不能做一个“可变观察者”。变化时不会为变量触发事件。

你在做什么真的试图做什么?

+0

我修改了提交澄清。 – jdw 2011-05-14 02:07:26