2009-08-20 180 views
0

我有我的删除元素功能工作的问题。jquery最接近()选择

我有这样的功能:

//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

您正在向deleteItem函数传递一个选择器,它可以获取所有的删除链接。 你会想要更像这样的东西。

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

$("a.delete").live('click', function() { 
    deleteItem($(this)); 
});