当我删除某些东西
时,我似乎无法让我的jQuery删除div代码是:
<div class="amend_order" data-item_key="1367264719mz7">
<p>Home Made Ice Cream</p>
<p class="small_text">Pistachio</p>
<p>
<a class="edit_item ui-link" href="javascript:void(0);">Edit</a>
----
<a class="deleter ui-link" href="javascript:void(0);">Delete</a>
</p>
</div>
我尝试过使用
$(this).closest('div').remove();
不幸的是,这不起作用。
基本上有几个divs
的列表,我只是希望它们在点击时消失。
答案 0 :(得分:5)
如果动态添加容器div,则需要使用事件委派。试试这个:
$("#container").on("click", ".amend_order .deleter", function () {
$(this).closest("div").remove();
});
DEMO: http://jsfiddle.net/m6jVP/
如果它们是动态添加的,那么事件绑定实际上不会找到任何元素,因此在单击时不会执行。此事件处理针对#container
内的任何元素运行,这些元素在单击时与选择器.amend_order .deleter
匹配。
您可以使用与包含您要定位的这些div的稳定(静态)元素匹配的选择器替换#container
,必要时使用document
。
答案 1 :(得分:1)
HTML
<div class="amend_order" data-item_key="1367264719mz7">
<p>Home Made Ice Cream</p>
<p class="small_text">Pistachio</p>
<p>
<a class="edit_item ui-link" href="javascript:void(0);">Edit</a>
----
<a class="deleter ui-link" href="javascript:void(0);">Delete</a>
</p>
</div>
JS
$('.deleter').on('click', function(){
$(this).closest('div').remove();
})
答案 2 :(得分:0)
尝试指向div:
$('div.amend_order').click(function(){
$(this).remove();
});
或点击删除按钮时:
$('a.deleter.ui-link').click(function(){
$(this).parent('div').remove();
});
答案 3 :(得分:0)