В прототипе есть способ оценки того, что слушает события объектов DOM? - PullRequest
0 голосов
/ 15 июня 2009

Я добавил прослушиватель событий в свой код прототипа, и мне было интересно, есть ли способ проверить, что наблюдает за данным элементом dom для событий?

Желательно проверять с помощью firebug, но подойдет код javascript.

1 Ответ

1 голос
/ 15 июня 2009

Насколько мне известно, нет. Не в прототипе и не в ванильном JavaScript.

Прототип API доступен по адресу http://prototypejs.org/api, но для того, чтобы быть уверенным, просто еще один взгляд, похоже, нет никакого способа сделать это.

Однако вы можете создать собственный реестр.

Редактировать

например:

var EventRegistry = function() {
    var events=[];
    this.addEvent = function (element, func) {
        events.push({element:element,func:func});
        element.observe(func);
    }

    this.clearEvents = function(element) {
        events = events.reject(function(e) { 
            if (e.element == element) { 
                e.element.stopObserving(e.func); 
                return true;
            } else return false; 
        });
    }

    this.clearAllEvents = function (element) {
        events.each(function(e) { e.element.stopObserving(e.func); });
        events = [];
    }
}();

(Примечание: не тестировалось.)

...