Действие кнопки не работает после изменения обработчиков событий инициализации с .live на .on в jquery

0

im, используя теперь 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 нет действий и никаких ошибок после нажатия кнопки.

  • 2
    Ваш код выглядит хорошо. Вы проверили консоль на наличие ошибок? Я предполагаю, что проблема лежит в другом месте вашего кода.
  • 0
    почему есть точка . в вашем click. ? разве это не просто click
Показать ещё 1 комментарий
Теги:

1 ответ

0

JQuery 1.11 предусматривает использование делегата. И Live и On устарели. Проверьте эту ссылку JQuery Delegate. Поэтому я бы рекомендовал вам перейти на это.

Пример использования будет:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню