Comment vérifier un clic dans un élément parent, mais pas dans l'enfant?

Code:

HTML

<!-- snip --> <div class="parent" id="parent"> <div class="child" id="child"> </div> </div> <!-- snip --> 

Javascript

 /* snip */ $(function () { $("#parent").click(function () { alert("This dialog should only show up if the parent is clicked."); }); }); /* snip */ 

(Ceci est juste la structure de base du code réel … certaines choses sont différentes dans le code réel, par exemple, l'enfant est un élément JQuery UI Draggable)

La façon dont les activités de JavaScript / DOM fonctionnent, c'est qu'ils «font de la bulle» des enfants aux parents. Donc, il vous suffit d'arrêter cela sur l'élément enfant:

 $('#child').click(function(event) { event.stopPropagation(); }); 

Consultez la documentation jQuery pour .click() pour plus d'informations. Sinon, vous pouvez vérifier pour voir quel est l'élément originaire dans le gestionnaire d'événements du parent en utilisant event.target .

Eh bien, je ferais quelque chose comme ça:

 $("#child").click(function() { }); 

Bien que cela semble un peu moche, il est garanti de travailler, je pense.