2009-08-20 8 views
0

私は要素の機能を削除することに問題があります。このHTMLで次にjquery closest()を選択

//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"); 
}); 

<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)); 
});