Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery转换_Jquery_Ajax - Fatal编程技术网

Jquery转换

Jquery转换,jquery,ajax,Jquery,Ajax,我正在开发一个代码snipet,其中有如下处理程序: _ratingHandler = Function.createDelegate(this, this.onRatingChange); _endClientCallBackHandler = Function.createDelegate(this, this.onEndClientCallBack); function attachEvent() { _eventOk = false; _eventCallBackOk

我正在开发一个代码snipet,其中有如下处理程序:

_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 Hameed

jQuery中与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相关,下面是它的定义方式