Библиотека jQuery добавление прослушивателей событий для динамически добавленных элементов [дубликат]



этот вопрос уже есть ответ здесь:



Итак, прямо сейчас я понимаю, что для того, чтобы прикрепить прослушиватель событий к динамически добавляемому элементу, вам нужно переопределить прослушиватель после добавления элемента. Есть ли способ обойти это, так вам не нужно выполнять целый дополнительный блок кода?

434   4  

4 ответов:

используя .on() вы можете определить свою функцию один раз, и она будет выполняться для любых динамически добавляемых элементов.

$('#staticDiv').on('click', 'yourSelector', function() {
  //do something
});
$(document).on('click', 'selector', handler);

здесь click - это имя события, а handler - это обработчик событий, например ссылка на функцию или анонимную функцию function() {}

PS: Если вы знаете конкретный узел, в который вы добавляете динамические элементы - вы можете указать его вместо document.

вы динамически генерируете эти элементы, поэтому любой прослушиватель, примененный при загрузке страницы, не будет доступен. Я отредактировал вашу скрипку с правильным решением. В основном jQuery удерживает событие для последующей привязки, прикрепляя его к родительскому элементу и распространяя его вниз к правильному динамически созданному элементу.

$('#musics').on('change', '#want',function(e) {
    $(this).closest('.from-group').val(($('#want').is(':checked')) ? "yes" : "no");
    var ans=$(this).val();
    console.log(($('#want').is(':checked')));
});

http://jsfiddle.net/swoogie/1rkhn7ek/39/

при добавлении нового элемента с вызовами плагина jquery, вы можете сделать следующее:

$('<div>...</div>').hoverCard(function(){...}).appendTo(...)

Comments

    Ничего не найдено.