Heim >Web-Frontend >js-Tutorial >Eine kurze Diskussion über JavaScript-Ereignisse_Javascript-Kenntnisse

Eine kurze Diskussion über JavaScript-Ereignisse_Javascript-Kenntnisse

WBOY
WBOYOriginal
2016-05-16 16:12:361105Durchsuche

1. Ereignisablauf

Der Ereignisfluss beschreibt die Reihenfolge, in der Ereignisse von der Seite empfangen werden. Allerdings schlägt IE einen Bubbling-Stream vor, während Netscape Communicator einen Capture-Stream vorschlägt.
JavaScript-Ereignisstream

2. Ereignis sprudelt

Ereignisse werden zunächst vom spezifischsten Element (dem Knoten mit der tiefsten Verschachtelungsebene) empfangen und dann nach oben an weniger spezifische Knoten (Dokumente) weitergegeben. Wie folgt:

Code kopieren Der Code lautet wie folgt:



                                                                                                                                                                                                           

          
Klicken Sie auf mich



window.onload = function(){
var obj = document.getElementById("test");
​ obj.onclick = function(){
alarm(this.tagName);
};
Document.body.onclick = function(){
alarm(this.tagName);
};
Document.documentElement.onclick = function(){
alarm(this.tagName);
};
Document.onclick = function(){
alarm("document");
};
​ window.onclick = function(){
alarm("window");
}
};

Ereignisausbreitungssequenz: div——>body——>html——>document

Hinweis:

Alle modernen Browser unterstützen Bubbling-Ereignisse, es gibt jedoch einige Unterschiede in der Implementierung. Das Bubbling von Ereignissen in IE5.5 und früheren Versionen springt direkt vom Textkörper zum Dokument (HTML wird nicht ausgeführt). Firefox-, Chrome- und Safari-Blasenereignisse bis hin zum Fensterobjekt.

3. Stoppen Sie das Sprudeln von Ereignissen und stornieren Sie Standardereignisse

a. Holen Sie sich das Ereignisobjekt

Code kopieren Der Code lautet wie folgt:
Funktion getEvent(event) {
// window.event IE
// Ereignis ohne IE
return-Ereignis ||. window.event;
}

b Funktion: Ereignissprudeln stoppen

Code kopieren Der Code lautet wie folgt:
Funktion stopBubble(e) {
// Wenn ein Ereignisobjekt bereitgestellt wird, handelt es sich um einen Nicht-IE-Browser
if ( e && e.stopPropagation ) {
// Daher unterstützt es die stopPropagation()-Methode des W3C
e.stopPropagation();
} sonst {
// Andernfalls müssen wir den IE verwenden, um das Sprudeln von Ereignissen abzubrechen
window.event.cancelBubble = true;
}
}

c. Blockieren Sie das Standardverhalten des Browsers

Code kopieren Der Code lautet wie folgt:
Funktion stopDefault( e ) {
// Standardbrowseraktionen blockieren (W3C)
If ( e && e.preventDefault ) {
          e.preventDefault();
} sonst {
//So verhindern Sie die Standardaktion der Funktion im IE
          window.event.returnValue = false;
}
Gibt false zurück;
}

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn