2009-08-20 12 views
0

Je rencontre des problèmes pour faire fonctionner ma fonction d'élément remove.jquery le plus proche() en sélectionnant

J'ai cette fonction:

//Remove an Item From Any Group 
function deleteItem (selector) { 
    $(selector).closest("li").fadeOut(500, function() { 
    $(selector).closest("li").remove(); 
    }); 
} 

Alors ce pour l'appeler,

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

Avec ce 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> 

Le problème est qu'il est seulement enlever le premier LI dans la liste, peu importe le lien. Je pensais que le plus proche sélectionne l'élément le plus proche de l'événement. Dans ce cas, le clic sur le bouton de suppression.

Qu'est-ce qui me manque?

Répondre

4

Vous passez la fonction deleteItem un sélecteur qui vous obtient tous les liens de suppression. Vous voulez quelque chose de plus comme ça.

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

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