在jquery中将启动事件处理程序从.live更改为.on后,按钮操作无法正常工作

时间:2014-04-29 07:04:38

标签: jquery

我现在在版本中使用jQuery:jquery-1.11.0.min.js

在从.live更改为.on之前我正在使用jquery:1.6.1(允许.live)

此按钮的Html:

<div class="start"><button>Start</button></div>

在_initEventHandlers中,当我使用1.6.1时,我有一个带有此代码的函数:

$('#ifrform').get(0).setAttribute('action', 'Handler.ashx');
     $.blueimp.fileupload.prototype._initEventHandlers.call(this);
     var filesList = this.element.find('.row.files'), eventData = { fileupload: this };

     filesList.find('.start button')
          .live(
               'click.' + this.options.namespace,
               eventData,
               this._startHandler
          );

更改为1.11.0后,我有以下代码:

$('#ifrform').get(0).setAttribute('action', 'Handler.ashx');
     $.blueimp.fileupload.prototype._initEventHandlers.call(this);
     var filesList = this.element.find('.row.files'), eventData = { fileupload: this };

     filesList.find('.start')
          .on(
               'click.' + this.options.namespace,
               'button',
               eventData,
               this._startHandler
          );

使用.live一切正常,但是.on按钮点击后没有动作也没有错误。

1 个答案:

答案 0 :(得分:0)

Jquery 1.11强制使用委托。 Live和On都已弃用。请查看此链接Jquery Delegate。所以我建议你转向那个。

示例用法是:

$( "table" ).delegate( "td", "click", function() {
    $( this ).toggleClass( "chosen" );
});