Jquery find(...).live 不是函数

Jquery find(...).live is not a function

我最近将我的 jquery 库更新到 3.3.1,从那以后 jquery.fileupload-ui 在这里中断

 _initEventHandlers: function () {
        $.blueimp.fileupload.prototype._initEventHandlers.call(this);
        var filesList = this.element.find('.files'),
            eventData = { fileupload: this };
        filesList.find('.start a')
            .live(
                'click.' + this.options.namespace,
                eventData,
                this._startHandler
            );
        filesList.find('.cancel a')
            .live(
                'click.' + this.options.namespace,
                eventData,
                this._cancelHandler
            );
        filesList.find('.delete a')
            .live(
                'click.' + this.options.namespace,
                eventData,
                this._deleteHandler
            );
    },

我的感觉是 live 已弃用。

如何修改此代码以解决此问题?

亲切的问候

你的感觉是对的,live()很久以前就被弃用了,已经被移除了。

现代方法是使用on()方法的委托签名。根据您的代码,它看起来像这样:

_initEventHandlers: function() {
  $.blueimp.fileupload.prototype._initEventHandlers.call(this);
  var filesList = this.element.find('.files'),
    eventData = { fileupload: this },
    clickEventName = 'click.' + this.options.namespace;

  filesList.on(clickEventName, '.start a', eventData, this._startHandler);
  filesList.on(clickEventName, '.cancel a', eventData, this._cancelHandler);
  filesList.on(clickEventName, '.delete a', eventData, this._deleteHandler);
},