2009-08-20 91 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)); 
});