Zwei überlappende Elemente des HTML-DOM, sowohl sensibel auf ein Ereignis click , leiden die uralte Problem der Ausbreitung DEGI Ereignisse zwischen den Schichten des DOM selbst: die sogenannte Eventbubbling. Dieses Verhalten (was auch in anderen Entwicklungsumgebungen gefunden: Siehe Actionscript 3.0: MovieClip MovieClip über ) ist an sich in vielen Fällen nützlich. Doch in anderen schafft sie viele Probleme. . Angenommen Sie haben ein div -Container-sensitive Veranstaltung click . Überlagert wird diese sind ein klassisches Anker-Link a . Klick auf den Link neben dem "umblättern" das Ereignis ausgelöst hat mit den damit verbundenen div -Container. contenitore, possiamo usare jQuery in questo modo: Um zu verhindern, die Ausbreitung dall'anchor click-Ereignis a das div -Container, können wir jQuery wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 | "box" > < div id = "box"> "mylink" href = "#" > Link < / a > < ein id = "MyLink" href = "#"> Link </ eins > </ div > <-! Oder -> "box" > < div id = "box"> <-! Inhalt -> </ div > <-! Dieser Anker hat Stilen, so dass in absolute oder relative Position und dann auf den Container div überlagert gesetzt -> "mylink" href = "#" > Link < / a > < ein id = "MyLink" href = "#"> Link </ eins > |
si propaghi agli elementi sottostanti: Mit jQuery können Sie das Ereignis zu verhindern click auf das Anker-Tag a die unten aufgeführten Gegenstände verbreitet werden:
1 2 3 4 5 6 7 | ) . click ( $ ('A # MyLink). Klicken Sie auf ( event ) { Funktion (event) { event. target . href ; .. Dokument location = Ereignis-Ziel href.; ; Veranstaltung stopPropagation ().; ; . Veranstaltung preventDefault (); } ); |











Hallo,
mir jemand sagt, dass der Code in der Post funktioniert? Ich würde immer die Links der ersten Schicht meiner Multi-Level-Menüs nicht öffnen Sie eine neue Seite (Ich schaffe das Menü mit den Funktionen von WordPress, so kann ich nicht entfernen Sie die Links), dh: ein Klick auf den Link sollte nur erscheinen, die erste Ebene Untermenü ( Ich glaube mit jqueryslidemenu erscheinen, aber das ist eine andere Geschichte ...
)
Thank you!