JQuery удалить родительский OnClick не работает для новых элементов

0

Я создаю форму с динамическим количеством опций. Удаление параметров отлично подходит для тех элементов, которые существуют с самого начала, но элементы, которые генерируются динамически, не могут быть удалены. Кто-нибудь знает?

JSFiddle: http://jsfiddle.net/Kxr4C/

HTML:

<div class="options">
  <div><input type="text" name="option[]" value="Option A"> <a href="#" class="delete_option">Delete</a></div>
  <div><input type="text" name="option[]" value="Option B"> <a href="#" class="delete_option">Delete</a></div>
  <div><input type="text" name="option[]" value="Option C"> <a href="#" class="delete_option">Delete</a></div>
</div>
<a href="#" class="new_option">Add a new option</a>

Javascript:

jQuery('a.new_option').click(function(){
  jQuery('div.options').append('<div><input type="text" name="option[]" value=""> <a href="#" class="delete_option">Delete</a></div>');
});

jQuery('a.delete_option').click(function(){
  jQuery(this).parent('div').fadeOut();
});
Теги:

3 ответа

3
Лучший ответ

Для динамически созданного элемента необходимо использовать делегирование событий:

jQuery('div.options').on('click', 'a.delete_option', function(){
  jQuery(this).parent('div').fadeOut();
})
  • 0
    Спасибо за предложение, это работает! Я приму ваш ответ, как только это будет разрешено.
  • 0
    Рад, что это помогло: D
0

вы должны использовать метод.on вместо этого, чтобы он делегировал событие новым элементам.

jQuery(document).on('click','a.delete_option',function(){
jQuery(this).parent('div').fadeOut();
});

здесь новая скрипка http://jsfiddle.net/rjC6C/

0

Использовать .on()

jQuery.on('click', 'a.delete_option', function () {
    jQuery(this).parent('div').fadeOut();
});

Мероприятие

Ещё вопросы

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