Heim > Artikel > Web-Frontend > Ausführliche Erläuterung des Beispielcodes zum Erfassen und Verhindern der Ereignisweitergabe durch Javascript
1. Was ist Event-Bubbling?
Im Sortieralgorithmus haben wir die sogenannte Blasensortierung gelernt, um die zugrunde liegenden Dinge an die Oberfläche zu bringen.
Das Nachfolgend sehen wir uns ein Beispiel an, um zu veranschaulichen, was Event-Bubbling ist.
<p> <button>测试</button> </p> <script> $("p").bind("click",function(){alert("p")}); $("button").bind("click",function(){alert("button"}); </script>
Wenn das Event-Bubbling unterstützt wird und wir auf die Schaltfläche „Testen“ klicken, wird als erstes die Warnung („Schaltfläche“) ausgeführt Name impliziert:
Ereignisse werden in der Reihenfolge vom spezifischsten Ereignisziel zum am wenigsten spezifischen Ereignisziel (Dokumentobjekt) ausgelöst.
Wenn p-, button- und html-Stammelemente alle Ereignisse haben, ist die Reihenfolge der Ereignisausführung:
button->p->html
2. Was ist Ereigniserfassung?
Schauen wir uns noch einmal die Ereigniserfassung an. Im Vergleich zur Ereigniserfassung ist die Reihenfolge der Verarbeitungszeit völlig entgegengesetzt zum Ereignis-Bubbling
Wenn dieser Code ausgeführt wird, wird zuerst Alert("p") und dann Alert("button") ausgeführt. Wir erläutern das Konzept der Ereigniserfassung:
Ereignisse werden ausgehend vom ungenauesten Objekt (Dokumentobjekt) und dann zum genauesten ausgelöst.
<p> <button>测试</button> </p> <script> $("p").bind("click",function(){alert("p")}); $("button").bind("click",function(){alert("button"}); </script>Wenn es gebundene Ereignisse für die Elemente button, p und html gibt, ist die Ausführungsreihenfolge der Ereignisse ebenfalls: html->p->button
3. Was sind die Ereignisverarbeitungsmechanismen verschiedener Browserversionen?
(1) Im DOM wird das Ereignis-Bubbling und die Ereigniserfassung unterstützt. Im W3C-Standard wird davon ausgegangen, dass jedes Ereignis mit der Ereigniserfassung beginnt und den Endknoten findet wird den Wurzelknoten erreichen.Die Funktionen im DOM, die die Ereignisbindung unterstützen, sind:
Für den userCapture-Parameter ist der Standardwert false und Ereignis-Bubbling wird unterstützt.Wenn der userCapture-Parameter wahr ist, wird die Ereigniserfassung unterstützt.
addEventListener("事件名",函数,userCapture);
(3) Der Ereignisverarbeitungsmechanismus im IE unterstützt nur die Ereignisbindungsmethode
4. Wie kann die Ausbreitung des Vorfalls verhindert werden?
Sowohl das Sprudeln von Ereignissen als auch das Erfassen von Ereignissen können blockiert werden.
attachEvent("事件名","函数名")(1) Erstens lautet die Methode zur Verhinderung der Ereignisausbreitung im W3C: stopPropagation() im IE durch Festlegen von
(2 ) Wie kann das Standardverhalten eines Ereignisses verhindert werden? Verwenden Sie im W3C-Standard die Methode „preventDefault“ und im IE die Einstellung
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Beispielcodes zum Erfassen und Verhindern der Ereignisweitergabe durch Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!