Spanne innerhalb von Anker mit Ereignissprudeln

8

Ich habe so ein Stück html:

%Vor%

Um die AJAX-Anfrage zu bearbeiten, wenn ich auf den Anker klicke, habe ich den Handler bei Klickereignis registriert:

%Vor%

Meine Fragen sind:

  • warum click-Ereignis für span-Element ausgelöst wird? Schließlich habe ich click event nicht an SPAN-Elemente
  • gebunden
  • Abgesehen von der vorherigen Frage dachte ich, dass, wenn ich das SPAN click -Ereignis nicht behandeln werde, der Browser event-bubbling verwenden wird, um das click -Ereignis für den Anker zu erhöhen (wenn ich event.stopPropagation () nicht aufrufen werde). Aber ich habe auch nicht für mich trainiert, da dieses Klick-Event nur einmal ausgelöst wird

Also, jetzt habe ich das Problem gelöst. Meine Lösung ist:

%Vor%

Aber trotzdem bin ich neugierig, warum es so funktioniert ...

Danke,

Paweł

    
dragonfly 28.05.2009, 07:29
quelle

3 Antworten

11

Sie müssen das currentTarget Ihres Ereignisses verwenden.

%Vor%     
Christophe Eblé 28.05.2009, 07:38
quelle
1

Ok, aber wenn ich auf SPAN klicke und die Methode stopPropagation () aufruft, funktioniert mein Code in diesem Formular nicht:

%Vor%

});

Immer noch, ich vermisse einige wichtige Punkte im Zusammenhang mit Event-Bubbling.

    
dragonfly 28.05.2009 07:43
quelle
1

Sie können immer die Spezifikation lesen. Ein schönes Tutorial ist auch hier verfügbar.

StopPropagation hat nur dann eine Bedeutung, wenn Sie Click-Event-Handler für die Elemente SPAN und A definiert haben. Durch den Aufruf der stopPropagation im SPAN-Event-Handler wird verhindert, dass der A-Handler aufgerufen wird. Dies setzt die Standard-Bubble-Phase voraus.

    
kgiannakakis 28.05.2009 07:54
quelle

Tags und Links