触发并观察类对象的jQuery事件

时间:2012-02-23 20:58:44

标签: jquery events bind javascript-objects

使用jQuery作为我的基础,我有2个类。 objA& objB。

ObjB引用了objA。当ObjA.fn执行时,我希望objB.fn也能自动执行。我似乎无法让objB.fn开火?我做错了什么?

objA = function() {
    var v = 0,
    fn = function(i) {
        v = i;
        $(v).trigger('customEvent', i);
    };
    return { fn : fn };
};

objB = function(a) {
    var v2 = 0,
    myObjA = a,
    fn = function(e, i) {
        v2 = i*(-1);
    };
    $(a).bind('customEvent', fn);
    return { fn : fn };
};
var a = new objA();
var b = new objB(a);

1 个答案:

答案 0 :(得分:0)

好的,所以我找到了答案。问题是我没有从正确的物体上发射事件。这都是关于范围的。 objB可以看到objA,所以objA需要触发事件,而不是它的值。这也意味着我需要听取我对objA的引用,以了解它何时触发事件。

以下正确的例子:

objA = function() {
    var v = 0,
    fn = function(i) {
        v = i;
        $(this).trigger('customEvent', i);
    };
    return { fn : fn };
};

objB = function(a) {
    var v2 = 0,
    myObjA = a,
    fn = function(e, i) {
        v2 = i*(-1);
        console.log(v2);
    };
    $(myObjA).bind('customEvent', fn);
    return { fn : fn };
};
var a = new objA();
var b = new objB(a);

a.fn(3)