2012-04-16 3 views

Répondre

6
if ($(e.target).parent('#someDiv').length == 0) { 
    ... 
} 

Ou, avez-vous dire (« pas un ancêtre e »):

if ($(e.target).closest('#someDiv').length == 0) { 
+0

thaaank, ça marche ... pour l'instant =) ty rly – Clem

+0

'.closest()' commence par l'élément lui-même et s'arrête s'il trouve quelque chose. si par hasard le sélecteur correspond à l'enfant (comme dire en utilisant une classe), il reviendra lui-même. '.parents()' serait plus sûr. – Joseph

+2

@Joseph Bien repéré. Ensuite, utilisez '.parent(). Nearest ('# someDiv')'. –

1

Vous pouvez utiliser la méthode parent avec un sélecteur pour retourner l'élément parent si elle correspond à celle sélecteur. Vous pouvez ensuite vérifier la propriété length pour voir si l'élément parent a été retourné:

$("body").click(function(e) { 
    if(!$(this).parent("#someDiv").length) { 
     alert("Not a child"); 
    } 
}); 

Si vous voulez vérifier si l'élément cliqué n'est pas un ancêtre , vous pouvez utiliser parents au lieu de parent.

1
$('yourElement').on('click',function(){ 
     if(!$(this).parents('theDiv').length){ 
      //not a child 
     } 
}); 
Questions connexes