запускать и наблюдать событие jQuery для объекта класса - PullRequest
0 голосов
/ 24 февраля 2012

Используя 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 голосов
/ 24 февраля 2012

Хорошо, я нашел свой ответ. Проблема была в том, что я не запускал событие с нужного объекта. Все дело в сфере. 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)
...