2016-04-08 11 views
-1

ich mit einem jQuery mehrere WählerRedundanz mit mehreren Selektor

hier ein Problem der Redundanz bin vor ist mein Code:

<div id="1"> 
    <div id="2"> 
     <div id="3"> 
     </div> 
    </div> 
</div> 



<script> 
$("#1,#2,#3").on('click', function() 
{ 
    alert("my message"); 
}); 
<script> 

, wenn ich auf auf „3“ i 3 mal „meine Botschaft haben " wenn ich auf "2 my message" ich werde 2 mal haben "" wenn ich auf "1" i 1 mal haben "meine Botschaft"

Aber ich möchte, dass jeder div I klicken, Ich habe nur 1 mal "meine Nachricht"

danken Ihnen für Ihre Hilfe

+0

Und warum binden Sie nicht nur Ereignis an den nächsten gemeinsamen Vorfahren? Wenn Sie einen relevanten Anwendungsfall angeben, gibt es sicherlich etwas Besseres zu tun, als mehrere Klickereignisse zu binden. –

+0

Ich suche immer vor dem Posten. Aber ich habe das Vokabular nie gelernt, weil ich nie einen Lehrer hatte. Ich lerne alleine und Jungs, die wie du sprechen, lassen mich beleidigt fühlen – Gromain

+0

Nichts für ungut von mir, wirklich. Hier könnte nützlich sein, um zu lesen: http://javascript.info/tutorial/bubbling-and-capturing –

Antwort

4

Sie müssen Ereignispropagierung zu untergeordnetes Element stoppen: auch

$("#1,#2,#3").on('click', function(e){ 
    e.stopPropagation(); 
    alert("my message"); 
}); 
+0

Duplikat von [Javascript/Jquery Single Event Ziel Delegation] (http://stackoverflow.com/a/3505757/722036) –

+1

Zweck des Downvote ??? –

0

wir sollten einfach falsch zurückkehren.

$("#id1,#id2,#id3").click(function(e){ 
    alert($(this).attr('id')); 
    return false; 
});