2013-09-14 3 views
1

У меня возникли проблемы с удалением элементов списка после щелчка после использования jquery для добавления элементов списка. Если бы мне пришлось угадать, почему это происходит, это связано с тем, что jquery может просматривать исходный HTML-документ, а не обновленный после добавления элементов списка? В любом случае, я не могу понять, как это исправить.Удаление элементов списка после их добавления с помощью jQuery

Вот мой HTML:

<form> 
     <div> 
      <label for="todo">I need to:</label> 
      <input type="text" id="todo" /> 
     </div> 
     <button id ="add" type="button">Add to your to-do list!</button> 
</form> 
<ul> 
</ul> 

И мой JQuery:

$(document).ready(function() { 
    $('#add').click(function() { 
     var item = $('#todo') 
     $('ul').prepend("<li>"+item.val()+"</li>"); 
    }); 
     $('li').click(function() { 
     $(this).remove(); 
    }); 
}); 
+2

Мы могли потратить весь день на дублирование этого вопроса :) – Barmar

+1

Извините! Я обещаю, что искал. Посмотрев на возможные дубликаты, похоже, я просто не знал, как правильно сформулировать свой вопрос. – carc

ответ

5

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

$(document).ready(function() { 
    $('#add').click(function() { 
     var item = $('#todo') 
     $('ul').prepend("<li>"+item.val()+"</li>"); 
    }); 
    $('ul').on('click', 'li', function() { 
     $(this).remove(); 
    }); 
}); 

Демонстрация: Fiddle

+0

Я добавил кнопку, чтобы удалить выбранный элемент, но это не будет сделано. Что я делаю не так? https://jsfiddle.net/17ufszLq/1/ – koljanep

Смежные вопросы