我在删除元素功能时遇到问题。
我有这个功能:
//Remove an Item From Any Group
function deleteItem (selector) {
$(selector).closest("li").fadeOut(500, function() {
$(selector).closest("li").remove();
});
}
然后这个叫它,
$("a.delete").live('click', function() {
deleteItem("li span.delete a.delete");
});
使用此HTML:
<ul>
<li><img src="" width="40" height="40" class="image"/><span><a href="#">Drinkers Pub</a></span><span class="delete"><a href="javascript:;" class="delete">delete</a></span></li>
<li><img src="" width="40" height="40" class="image"/><span><a href="#">Drinkers Pub</a></span><span class="delete"><a href="javascript:;" class="delete">delete</a></span></li>
<li><img src="" width="40" height="40" class="image"/><span><a href="#">Drinkers Pub</a></span><span class="delete"><a href="javascript:;" class="delete">delete</a></span></li>
</ul>
问题是它只删除列表中的第一个LI,无论哪个链接。 我认为最接近的事件是最接近事件的元素。在这种情况下,单击删除按钮。
我错过了什么?
答案 0 :(得分:4)
您正在传递deleteItem函数一个选择器,它可以获取所有删除链接。 你会想要更像这样的东西。
function deleteItem (link) {
link.closest("li").fadeOut(500, function() {
link.closest("li").remove();
});
}
$("a.delete").live('click', function() {
deleteItem($(this));
});