jQuery事件侦听器的javascript对象

时间:2011-05-13 23:18:56

标签: javascript-events

如果之前已经问过这个,我很抱歉,有没有办法向Javascript对象添加事件监听器/处理程序?最好使用JQuery。

如:

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

我试过这个,但似乎没有任何事情发生。这只适用于DOM元素吗?

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

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

4 个答案:

答案 0 :(得分:1)

我同意Cheeso的说法,说明你真正想要做的事情更重要,但是你的具体问题的一个解决方法可能是将你的变量存储在一个对象中并且只通过getter / setter提供访问权限,然后就可以了在二传手中做你想做的事。 e.g。

function data() {
    var foo = 0;

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

var theData = new data();

theData.setFoo(5);

答案 1 :(得分:0)

是的,这是正确的。你不能成为一个“变量观察者”。更改变量时,没有为变量触发事件。

真正尝试做什么?

答案 2 :(得分:0)

您可以尝试: http://higginsforpresident.net/js/static/jq.pubsub.js

请参阅 http://weblog.bocoup.com/publishsubscribe-with-jquery-custom-events

或者使用像backbone / underscore或knockout.js这样的框架。

答案 3 :(得分:0)

HTML/Elements/audio

    var foo;
    $(foo).bind('error', function() {     
       //your code here
    });