Javascript: удаление слушателя события, прикрепленного анонимной функцией к методу объекта - PullRequest
1 голос
/ 27 ноября 2010

например:.

function myclass (htmlelement) {
  this.element = htmlelement;
}

myclass.prototype.hoverfunc = function() {
  alert (this.element.id);
}

myclass.prototype.doListen = function() {
  this.element.addEventListener ('mouseover', function() {this.hoverfunc();}.bind(this),false);
}

elListen = new myclass (document.getElementById('foo'));
elListen.doListen();

Как бы я создал метод, который удалял бы слушателя из элемента?

1 Ответ

3 голосов
/ 27 ноября 2010

Зачем вам нужна анонимная функция?

myclass.prototype.doListen = function() {
  this.listener = function() {this.hoverfunc();}.bind(this);
  this.element.addEventListener ('mouseover', this.listener, false);
}


myclass.prototype.stopListen = function() {
  this.element.removeEventListener('mouseover', this.listener);
}

Кроме того, будьте осторожны с addEventListener()/removeEventListener(), так как они основаны на стандартах DOM Level 2 - что IE не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...