0

我在让删除元素功能正常工作时遇到问题。

我有这个功能:

//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,无论哪个链接。我认为最接近从事件中选择最接近的元素。在这种情况下,单击删除按钮。

我错过了什么?

4

1 回答 1

4

您正在向 deleteItem 函数传递一个选择器,该选择器为您提供所有删除链接。你会想要更多这样的东西。

function deleteItem (link) {
  link.closest("li").fadeOut(500, function() { 
    link.closest("li").remove();
  });
}

$("a.delete").live('click', function() {
  deleteItem($(this));
});
于 2009-08-20T15:18:04.083 回答