2010-10-18 5 views
0

Je souhaite afficher un dialogue lorsqu'un utilisateur clique sur l'objet DOM qui contient mon application. Je pensais, je voudrais juste mettre un événement de clic unique sur tous les parents, puis déclencher le dialogue avec cela. Parce que l'objet DOM pour lequel je reçois le parent est inclus, il déclenche le dialogue même lorsque l'objet sur lequel il est cliqué estSélectionnez les parents d'un objet DOM et exclure les enfants des parents sélectionnés

Je veux, en substance, percer un trou dans les parents pour exclure le DOM avec lequel l'utilisateur interagit.

Je pensais que le mouseleave et puis cliquiez n'importe quel autre objet de dom travaillerait.

Des suggestions?

Répondre

1
$("#container").click(funcion(e) { 
    if (this !== e.target) { return; } 
    // the user clicked the parent directly (not one of its children) 
}); 

Explication: Vous vérifiez si la cible d'événement est égal à l'élément #container. Si ce n'est pas le cas, cela signifie que l'événement click s'est propagé depuis l'un des enfants de # container, et que vous venez de tuer l'événement en retournant. Si oui, vous faites ce que vous avez prévu.

Vous pouvez voir comment cela fonctionne sur mon site Web (w3viewer.com). Cliquez sur le lien "À propos de" dans le coin inférieur gauche. Une boîte apparaîtra. Pour fermer la boîte, vous devez cliquer en dehors de celle-ci.

+0

Oh mec, c'est génial. Merci beaucoup! –

Questions connexes