2010-06-24 6 views
2

Je génère un tas d'éléments "li" à la suite d'un appel ajax. Ils ressemblent:Un gestionnaire de clic pour plusieurs boutons et arrêter la propagation de l'événement jusqu'au parent?

<li> 
    <p>Hello result 1</p> 
    <button>remove</button> 
</li>  
<li> 
    <p>Hello result 2</p> 
    <button>remove</button> 
</li> 
... 

puis-je créer un seul gestionnaire de clic qui sera appelé lorsque l'un des éléments « li » item « bouton » obtient vous cliquez dessus, et arrêtera également la propagation de l'événement, cliquez jusqu'à la " li "parent? Quelque chose comme:

function btnClicked() { 
    var liItem = this.parent; // ideally is the <li> whose button was clicked. 
    return true; // don't let click event go up to <li> parent? 
} 

----------------- Modifier ---------------------

En outre, je ne suis pas sûr si je vais utiliser l'élément de bouton, pourrait utiliser un div cliquable comme un bouton à la place - les mêmes techniques devraient fonctionner pour les deux, non?

Merci

Répondre

2
$('li').click(function(event) { 
//do something 
event.stopPropagation() 
}); 

Cela fonctionne dans jQuery. Vous voudrez changer le li pour ne sélectionner que les li articles que vous voulez.

+0

Ok cool, oui comment puis-je changer le li pour sélectionner uniquement les éléments li je veux? Je veux dire devrait-il être quelque chose comme: $ ('# myList li') ?? Signification 'restreindre seulement aux éléments li de ul avec id =' myList ' – user246114

+0

C'est exactement ce que ce serait. =) –

+0

Ok ça marche, je n'arrive pas à le faire fonctionner avec les autres gestionnaires que j'ai déjà sur ma page pour les éléments parents. Va poster comme un nouveau Q, merci. – user246114