Eindringen von Veranstaltungen mit jQuery

Zwei Elemente des HTML-DOM Überschneidungen, die beide empfindlich auf ein Ereignis click der sogenannte Eventbubbling:, von dem uralten Problem der Ausbreitung Degi Ereignisse zwischen den Schichten des DOM selbst leiden. Dieses Verhalten (das ist auch in anderen Entwicklungsumgebungen gefunden: siehe Actionscript 3.0: MovieClip über MovieClip ) ist selbst in vielen Fällen sinnvoll. Doch in anderen, erzeugt nicht ein paar Probleme. . Zum Beispiel vorstellen, dass wir einen haben div Container empfindlich auf die Veranstaltung click . Hinzu kommt, dass wir ein klassisches Anker-Link a . Klick auf den Link neben dem "Seitenwechsel" das Ereignis ausgelöst mit der zugehörigen div -Container. contenitore, possiamo usare jQuery in questo modo: Um die Ausbreitung der Click-Ereignis aus dem Anchor zu verhindern a die div -Container, können wir jQuery auf diese Weise:

1
2
3
4
5
6
7
8
9
10
11
"box" > < div id = "box">
"mylink" href = "#" > Link < / a > < a id = "mylink" href = "#"> Link </ a >
</ div >

<-! Oder ->

"box" > < div id = "box">
<-! Inhalt ->
</ div >
<- Dieser Anker hat Arten, um in Position absolut oder relativ sein und dann überlagert auf dem Behälter DIV ->
"mylink" href = "#" > Link < / a > < a id = "mylink" href = "#"> Link </ a >

si propaghi agli elementi sottostanti: Mit jQuery Sie das Ereignis verhindern click auf den Anker-Tag a , um Elemente unten propagiert werden:

1
2
3
4
5
6
7
) . click ( $ ('# A mylink'). Klicken Sie auf (
event ) { function (event) {
event. target . href ; document = Eventlocation Ziele href...
; . Veranstaltung stopPropagation ();
; . Veranstaltung preventDefault ();
}
);

One Response to: ""

  1. 7. Oktober 2009 Matthew:

    Hallo,

    mir jemand sagt, dass der Code in der Post funktioniert es? Indem Sie auf den Link sollte erscheinen nur die erste Ebene Untermenü (: Ich würde die Links in der ersten Ebene der mein Make Multilevel-Menü eine neue Seite öffnen (das Menü zu erstellen mit den Funktionen von WordPress, so kann ich nicht den Link entfernen), das heißt zu verhindern Ich bin mit jqueryslidemenu erscheinen, aber das ist eine andere Geschichte ... :) )
    Danke!

Hinterlasse einen Kommentar

TAG XHTML PERMITS: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> Code-Eingabe:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL