Jquery find (...). Live это не функция - PullRequest
1 голос
/ 02 июня 2019

Я недавно обновил свою библиотеку 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 устарело.

КакМогу ли я изменить этот код, чтобы исправить это?

С уважением

1 Ответ

2 голосов
/ 02 июня 2019

Ваше чувство верно, 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);
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...