J'ai quelques HTML comme ceci:Comment désactiver les événements de clic sur un objet DOM parent sans désactiver les événements de clic sur son objet DOM enfant?
<a class="button">
<span>
<span>
<span class="buttonspan">Content</span>
</span>
</span>
</a>
J'ai déjà quelques événements sur le parent objet Anchor. Maintenant j'essaye d'ajouter un événement de clic sur l'élément de portée enfant et en même temps de désactiver des événements de clic sur l'objet ancre parent. J'utilise jQuery pour y parvenir, mais je ne pouvais pas comprendre. Mon code jQuery est comme ceci:
$('a.button').click(function(event){
return false;
});
$('.buttonspan').live('click', function(event){
event.preventDefault();
event.stopImmediatePropagation();
// some function
});
Si j'exécute le code ci-dessus, il empêche l'événement click élément enfant aussi bien. Mais si je ne fais pas la première partie, l'événement click parent sera également déclenché. Est-il possible de désactiver l'événement parent sans désactiver l'événement de clic enfant nouvellement ajouté?
Maver, merci beaucoup pour votre réponse rapide. Il semble que celui-ci fonctionne quand je clique sur l'objet dom, mais que se passe-t-il si j'utilise la méthode trigger jQuery pour déclencher par programme l'événement click. Par exemple: $ ('. Buttonspan'). Trigger ('clic') ;. Il semble que ça ne marche pas dans ce cas. – Ben
Cela devrait toujours fonctionner lorsque l'événement click de .buttonspan est déclenché par programme. Je viens de faire un test pour être sûr et ça a bien fonctionné. – dcharles
Yah, Marve, il y avait un autre problème. Votre solution fonctionne! Merci! – Ben