Javascript: `this` и обработчики событий object.method

0

Я пытаюсь взять кучу el из объекта и приложить метод в качестве обработчика кликов и передать щелчок el в функцию. Код выглядит так (jQuery):

svCatEditor.list.bind('click', svCatEditor.controller($(this)));

Когда я console.log вне $(this) в svCatEditor.controller я получаю объект window. Я понимаю, почему это происходит: http://unschooled.org/2012/03/understanding-javascript-this/

Я не понимаю, как обойти это. Нужно ли мне использовать совершенно другой подход или есть что-то простое, что мне не хватает?

Заранее спасибо.

Теги:
methods
this

1 ответ

2
Лучший ответ

Вам нужно будет сделать это следующим образом:

svCatEditor.list.bind('click', function() { svCatEditor.controller($(this)) } );

this внутри контекста функции обратного вызова относится к текущему объекту, который запускает обработчик событий. В противном случае в вашем внешнем контексте this относится к окну.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню