【问题标题】:Equivalent of ASP.Net Ajax Function.createDelegate in jQuery等价于 jQuery 中的 ASP.Net Ajax Function.createDelegate
【发布时间】:2010-12-10 14:44:18
【问题描述】:
我试图将 ASP.Net ajax 行为移植到 jQuery 插件中。一个待解决的难题是在 jQuery 中找到 Function.createDelegate 的替代品。
我在 jQuery 中需要这样的东西:
this.$delegateOnClick = Function.createDelegate(this, this.fireOnClick);
jQuery .delegate 方法是否可行?
还是这个帖子:Controlling the value of 'this' in a jQuery event
【问题讨论】:
标签:
jquery
asp.net-ajax
jquery-events
【解决方案1】:
我认为你想要 jQuery $.proxy() 函数。有两种形式:
var proxy = $.proxy(someFunction, someObject); // A
var proxy2 = $.proxy(someObject, someString); // B
“A”调用返回一个函数,当它被调用时,函数“someFunction”将使用您传递给代理的任何参数调用,并且“this”绑定到“someObject”。 “B”版本是类似的,但不是传递函数,而是传递“someObject”上引用某个函数的属性的 name。因此,如果你有一个对象“widget”和一个名为“blink”的函数,那么
var blinker = $.proxy(widget, "blink");
为您提供一个函数,该函数将调用“widget”上的“blink”函数(即,“this”绑定到“widget”)。