Jquery转换
我正在开发一个代码snipet,其中有如下处理程序:Jquery转换,jquery,ajax,Jquery,Ajax,我正在开发一个代码snipet,其中有如下处理程序: _ratingHandler = Function.createDelegate(this, this.onRatingChange); _endClientCallBackHandler = Function.createDelegate(this, this.onEndClientCallBack); function attachEvent() { _eventOk = false; _eventCallBackOk
_ratingHandler = Function.createDelegate(this, this.onRatingChange);
_endClientCallBackHandler = Function.createDelegate(this, this.onEndClientCallBack);
function attachEvent()
{
_eventOk = false;
_eventCallBackOk = false;
rating1Extender.add_Rated(_ratingHandler);
rating1Extender.add_EndClientCallback(_endClientCallBackHandler);
}
_ratingHandler = $.proxy(this.onRatingChange, this);
_endClientCallBackHandler = $.proxy(this.onEndClientCallBack, this);
我是这样使用它们的:
_ratingHandler = Function.createDelegate(this, this.onRatingChange);
_endClientCallBackHandler = Function.createDelegate(this, this.onEndClientCallBack);
function attachEvent()
{
_eventOk = false;
_eventCallBackOk = false;
rating1Extender.add_Rated(_ratingHandler);
rating1Extender.add_EndClientCallback(_endClientCallBackHandler);
}
_ratingHandler = $.proxy(this.onRatingChange, this);
_endClientCallBackHandler = $.proxy(this.onEndClientCallBack, this);
现在我想把这段代码转换成Jquery。jquery中createDelegate的替代方案是什么?我将如何修改我的attevent函数
问候,,
Asif HameedjQuery中与Function.createDelegate函数等效的是代理函数: 所以它可能看起来像这样:
_ratingHandler = Function.createDelegate(this, this.onRatingChange);
_endClientCallBackHandler = Function.createDelegate(this, this.onEndClientCallBack);
function attachEvent()
{
_eventOk = false;
_eventCallBackOk = false;
rating1Extender.add_Rated(_ratingHandler);
rating1Extender.add_EndClientCallback(_endClientCallBackHandler);
}
_ratingHandler = $.proxy(this.onRatingChange, this);
_endClientCallBackHandler = $.proxy(this.onEndClientCallBack, this);
或者这也应该起作用:
_ratingHandler = $.proxy(this, "onRatingChange");
_endClientCallBackHandler = $.proxy(this, "onEndClientCallBack");
我认为您不需要更改attachEvent方法,但如果看不到更多代码,则很难说。请将代码格式化为代码。我认为您正在寻找。委派或。继续生活jQuery@Adam艾尔斯:我两次都试过了,但当我把alertratingHandler放进去的时候没有定义。这是所有相关代码。可能是您的警报缺少u:alert\u ratingHandler吗?这个对象引用的是什么,你能展示一下代码吗?在哪里应用事件处理程序?这是一个窗口。我在jQueryQunit测试中使用attachEvent,如下所示:模块'AttachtoOnChangeRating';asyncTest'Attach to onChangeRating',1,函数{rating1Extender=$find'RatingBehavior1';attachEvent;oktrue'testing';start;};代码是使用onRatingChange函数扩展窗口对象,还是在其他对象上使用onRatingChange函数`onRatingChange不是本机函数,因此必须在代码中的某个地方添加它。我熟悉QUnit,但您仍然没有提供足够的代码来解决问题。我建议您将代码放在一个文件夹中。@Adam:onratingchange与ajaxtoolkit中的ratingControl相关,下面是它的定义方式