2013-07-29 7 views
-2

Aide, solution à:Cliquez sur la div actuelle jquery ne fonctionne pas

http://jsfiddle.net/guin90/mb5BJ/2/

$("#click").on("click", function(){ 
    if($(this).attr("thesame") == 1){ 
     // Performs div is clicked on it and not on other elements within it. 
     // It's not working! 
    } else {  
     return false; 
    } 

    alert("Hellow"); 
    $(this).css("background", "red"); 

    // Only if you clicked the div # click and not on other elements within 
    // this div. But is not working!? For up when you click on the div 
    // or span element inside the div # click it also performs the function, 
    // it is only if clicked on div # click and not on other elements 
    // within it. 

    // and performs other functions that I will put 
}); 

HTML:

<div id="click" thesame="1"> 

    <!-- Clicks and does not perform function Click() --> 
    <span> Title HI! </span> 

    <!-- Clicks and does not perform function Click() --> 
    <div id="show_modal"> Show Modal Window </div> 

</div> 
+2

Au lieu de poser une nouvelle question, vous devriez avoir modifié votre [original] (http://stackoverflow.com/q/17935233/218196). –

+0

duplication possible de [jQuery: fonction de clic exclure les enfants.] (Http://stackoverflow.com/questions/2457246/jquery-click-function-exclude-children) –

Répondre

1

Utilisez event.target pour identifier quel élément a été cliqué. Quelque chose comme ça devrait faire l'affaire

$("#click").on("click", function(e){ 
    if (e.target.id != "click") return false; 
    .... 
}; 

Notez que vous aurez besoin de passer e en tant que paramètre de votre gestionnaire d'événements

DEMO

Si vous avez besoin de généraliser l'idée de tout div dans votre page vous devriez faire

$("div").on("click", function(e){ 
    if (e.target.nodeName == "DIV") return false; 
    .... 
}; 
+0

Ohhh mon dieu .. ual .. merci frère – user2632011

+0

Ami, mais si je n'utilise pas # click seulement utiliser $ ("div") On ("clic", ... Comme pour valider que l'utilisateur a cliqué dans la même div et pas d'autres balises à l'intérieur? be: $ ("div".) Live ("clic", fonction (e) { if (e! = "click") return false; ? – user2632011

+0

@ user2632011: vous utiliseriez 'event.target.nodeName = = "DIV" ' –

Questions connexes