查看了文档,我知道问题在于我要删除的项目正在追加。虽然我可以看到使用.on应该允许这个。我将一些内容附加到带有按钮的列表中,我想在单击时删除附加的内容。
<ul id="children">
<li id="child1">
<label class="narrow-full">Child</label>
<?php echo form_dropdown('year[]', $years, date('Y')); ?>
</li>
</ul>
var c = 1;
$( ".child-add" ).click(function() {
$( "#child1" ).clone().append( "<span class='child-delete ui-icon ui-icon-trash inline-block'></span>" ).attr('id', 'child'+(++c) ).appendTo( "#children" );
});
$( ".child-delete" ).on('click',function() {
$(this).parent().remove();
});
内容附加正常,但重置它的点击功能不会触发。然而,如果内容已经在页面上,例如,它确实有效。之后没有附加。
答案 0 :(得分:1)
只要将child-delete
附加到DOM,$('.child-delete').on('click', ..)
将无效,因为jQuery无法找到它。
而是使用event delegation:
$(document).on('click', '.child-delete', function() {
$(this).parent().remove();
});