2010-06-24 5 views
0

J'ai un élément de liste avec un bouton à l'intérieur. Le bouton est attaché à une fonction jquery pour supprimer l'élément de la liste.Jquery supprimer. bouton dans div à supprimer

//Delete Button - delete from cart 
    $('.ui-icon-trash').click(function() { 
     $(this).closest('li').remove() 
    }); 

<li> 
content here.... 
<a href="#" title="Remove from cart" class="ui-icon ui-icon-trash">Remove from cart</a> 
</li> 

Pourquoi cela ne fonctionne-t-il pas? Est-ce parce que le bouton est dans l'élément que je veux supprimer? Y a-t-il un moyen de contourner ceci??

Répondre

1

Je suppose que la liaison ne fonctionne pas parce que li est créé dynamiquement?

La liaison ne se produit qu'une fois sur document prêt. Donc, si l'élément est créé après le chargement de la page, l'événement click ne sera pas lié.

Dans ce cas, utilisez live:

$('.ui-icon-trash').live('click',function() { 
    $(this).closest('li').remove() 
}); 
0

Je pense qu'il existe une méthode comme .parent dans jQuery. Vous pouvez l'utiliser ... http://api.jquery.com/parent/

Si votre bouton est ajouté dynamiquement, vous devez le relier de nouveau. Sinon, jQuery ne connaîtra pas l'élément DOM.