使用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);
答案 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)