Эквивалент ASP.Net Ajax Function.createDelegate в jQuery - PullRequest
3 голосов
/ 10 декабря 2010

Я пытался перенести поведение ASP.Net ajax в плагин jQuery. Кусок головоломки, который остается решить, - найти замену Function.createDelegate в jQuery.

Мне нужно что-то подобное в jQuery:

this.$delegateOnClick = Function.createDelegate(this, this.fireOnClick);

Является ли метод jQuery .delegate подходом?

Или это сообщение: Управление значением 'this' в событии jQuery

1 Ответ

3 голосов
/ 10 декабря 2010

Я думаю, вам нужна функция jQuery $.proxy().Существует две формы:

var proxy = $.proxy(someFunction, someObject); // A
var proxy2 = $.proxy(someObject, someString); // B

Вызов «A» возвращает функцию, так что при ее вызове функция «someFunction» будет вызываться с любыми аргументами, переданными вами прокси, и с «this», связанным"SomeObject".Версия "B" похожа, но вместо того, чтобы передавать функцию, вы передаете name свойства в "someObject", которое ссылается на некоторую функцию.Таким образом, если у вас есть объект «виджет» с функцией «blink», то

var blinker = $.proxy(widget, "blink");

дает вам функцию, которая будет вызывать функцию «blink» для «widget» (то есть с «это "привязано к" виджету ").

...