0
ul
にリストアイテムを追加すると、jQuery on
イベントが発生したり、動作しないようです。私の理解から、.click()
の代わりにon
を使用すると、HTMLで作成されたものであれ、javascript/etcで後で追加されたものであれ、すべての項目に対して機能するはずです。動的に追加されたリストアイテムが `on`イベントで動作しない
<div class="container">
<div class="list">TO-DO LIST<div class="glyphicon glyphicon-plus"></div></div>
<ul class="toDoList" style="list-style: none;">
<li id="addToDo"><input type='text' id="addToDoText" placeholder="Add New ToDo"></input></li>
<li><span><i class="fa fa-trash"></i></span>Buy Robes</li>
<li><span><i class="fa fa-trash"></i></span>Fight Malfoy</li>
<li><span><i class="fa fa-trash"></i></span>Buy New Wand</li>
<li><span><i class="fa fa-trash"></i></span>Kill Voldemort</li>
<li><span><i class="fa fa-trash"></i></span>Feed Hedwig</li>
<li><span><i class="fa fa-trash"></i></span>Send Owl to Sirius</li>
<li><span><i class="fa fa-trash"></i></span>Do Dishes</li>
<li><span><i class="fa fa-trash"></i></span>Wash Robes</li>
<li><span><i class="fa fa-trash"></i></span>Buy Hagrid's Birthday Gift</li>
</ul>
</div>
と私のjQueryの:私はアイテムを追加し、TNE項目をクリックすると
$('ul.toDoList li').on("click", function(){
$(this).toggleClass('completedItem');
});
$("input").on("keypress", function(e){
if(e.which == 13){
new_text = $(this).val();
$(this).val("");
add_toDo(new_text);
}
});
$('li .fa-trash').on("click", function(){
$(this).closest('li').remove();
});
function add_toDo(item){
console.log("adding: "+item);
$('ul.toDoList').append('<li><span><i class="fa fa-trash"></i></span>'+item+'</li>');
};
、それはcompletedItem
クラスをトグルしない、また私はfa-trash
アイコンをクリックして削除することができます。
私は '$(document).find()'を追加しましたが、何もしていないようです。編集: '$(document).on( 'click'、 'li .fa-trash'、function(){...});'で取得できました。 – BruceWayne