Контекст выполнения хэндлера события
Пишу под jQuery второй день в жизни, поэтому вопрос может быть идиотским.
Есть некий обьект, (назовем его myObj) в котором я реализовал нужную мне функциональность. Один из его методов (назовем его myFunc) вызывается в качестве обработчика события. И, поскольку этот метод опирается на другие методы этого обьекта, он должен вызываться как метод обьекта. То есть внутри него this должен ссылаться не на ноду, а на myObj. Приходится делать так: this.form.bind('submit', {that: this}, function(evt) { that = evt.data.that evt.preventDefault(); that.myFunc.apply(that, [that.inputs]) }) Но это кажется мне несколько неизящным. Либо на jQuery пишут не так (а как тогда на нем пишут масштабные приложения?), либо я что-то упустил в документации. |
hogart,
that.myFunc.apply(that, [that.inputs]) that.myFunc(that.inputs) Это абсолютно одно и тоже. Если вы хотите поставить в качестве обработчика метод myFunc объекта myObj, то вам в любом случае (не важно, jQuery, или native JS) придется обернуть его в замыкание. |
Цитата:
(Мда, фигня какая-то. Переделаю.) Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 23:22. |