Автоматически добавлять обработчик событий во вновь созданный элемент, используя jQuery

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

Есть ли способ автоматически добавить обработчик событий во вновь созданные элементы, или я должен явно сделать это после создания элемента?

  $(function() {
      $('.bubbleItemOff').mouseenter(function(e) 
       {
          //...
       });
   });

2 ответа

Решение

Использовать делегирование событий для общего родительского элемента, используя on() метод (если вы используете jQuery 1.7.x +), например

$(function() {
    $('body').on('mouseenter', '.bubbleItemOff', function(e) 
    {
     ...
    }
}

если вы используете старую версию, используйте delegate() вместо. + Изменить body с первым общим родительским элементом .bubbleItemOff

Вы можете использовать JQuery on метод в подходе делегированных событий:

$(".parentItem").on("mouseenter", ".bubbleItemOff", function(e) {
    //
});

Вот .parentItem относится к любому родителю .bubbleItemOff,

Другие вопросы по тегам