2012-02-28 4 views
0

Я пытаюсь использовать классическую модель наследования для приложения JavaScript, которое я пишу, и полагается на то, что this определяется как текущий экземпляр класса, на который вызывается метод. Это прекрасно работает.Могу ли я использовать «привязку» jquery без изменения «this»?

Проблема в том, что я пытаюсь связать методы этого объекта в JQuery, и он перезаписывает this как элемент JQuery, что является проблематичным.

Я знаю, что обычный способ сделать это - просто сохранить копию this прямо перед вызовом $.bind, но поскольку я являюсь методом bindinga в своем классе, нет «права до», к которому у меня есть доступ.

Я начинаю отказываться от надежды на то, что я смогу получить этот стиль ООП, работающий с обратными вызовами JQuery, как слишком сумасшедший, но я решил, что это не помешает спросить.

+0

возможно дубликат [какое решение лучше для прохождения «этот» параметр для яваскрипта обработчика событий] (http://stackoverflow.com/questions/8779749/which-solution-is-better-for-passing- это-параметр к JavaScript-ивент-ручки) –

ответ

1

Вы можете использовать jQuery's $.proxy(), чтобы изменить this.

$('.class').bind('click', $.proxy(function() { 
    // `this` is now what `this` is in the outside context. 
}), this)); 
Смежные вопросы