2012-06-13 2 views
0

У меня проблема с переменной областью. Я устанавливаю прослушиватели событий (onclick), но обработчик - это метод объекта, и мне нужно ссылаться на объект внутри метода обработчика.Обработчик событий метод объекта

пример:

var FOO = function() { 
this.clicked = false 
}; 

FOO.prototype.handler = function(e) 
{ 
this.clicked = true; 
} 

FOO.prototype.setListeners = function() 
{ 
$("#but").click(this.handler); 
} 

var oop = new FOO(); 
oop.setListeners(); 

Пример работает в точке, где this.clicked = true; потому, что this не относится к oop.

Как передать ссылку объекта на функцию обработчика?

+0

возможно дубликат [Как получить этот объект в обработчике события щелчка в JQuery?] (Http://stackoverflow.com/questions/4466524/how-to-get-the- это в своем-объект-в-а-обработчиком-для-а-клик-событие-в-JQuery) –

ответ

1
FOO.prototype.setListeners = function() 
{ 
    var that = this; 
    $("#but").click(function(){that.handler();}); 
} 
Смежные вопросы