Brechen Sie den Standardvorgang ab
Die w3c-Methode ist e.preventDefault(), IE verwendet e.returnValue = false;
Zur Unterstützung von addEventListener() In Im Browser können Sie den Standardvorgang der Zeit auch abbrechen, indem Sie die Methode „preventDefault()“ des Zeitobjekts aufrufen. In IE vor IE9 kann jedoch derselbe Effekt erzielt werden, indem die returnValue-Eigenschaft des Ereignisobjekts auf false gesetzt wird. Der folgende Code setzt einen Event-Handler voraus, der alle drei Abbruchtechniken verwendet:
function cancelHandler(event){ var event = event || window.event; //用于IE if(event.preventDefault) event.preventDefault(); //标准技术 if(event.returnValue) event.returnValue = false; //IE return false; //用于处理使用对象属性注册的处理程序 }
Der aktuelle Entwurf des DOM-Ereignismodells definiert die Event-Objekteigenschaft defaultPrevented.
false zurückgeben
Die Rückgabe von false durch Javascript verhindert nur das Standardverhalten, aber die Verwendung von jQuery verhindert sowohl das Standardverhalten als auch das Sprudeln des Objekts.
Der Code lautet wie folgt:
var a = document.getElementById("testB"); a.onclick = function(){ return false; };
Um Blasenbildung zu verhindern
w3cs Methode ist e. stopPropagation( ), IE verwendet e.cancelBubble = true
In Browsern, die addEventListener() unterstützen, können Sie eine stopPropagation()-Methode des Ereignisobjekts aufrufen, um zu verhindern, dass sich das Ereignis weiter ausbreitet. Wenn andere Handler für dasselbe Objekt definiert sind, werden die verbleibenden Handler weiterhin aufgerufen, der Aufruf der Methode stopPropagation() kann jedoch jederzeit während der Ereignisweitergabe aufgerufen werden. Sie kann in der Erfassungsphase, im Ereignisziel selbst und in anderen Fällen ausgeführt werden Risikoblasenstadium.
IE vor IE9 unterstützt die stopPropagation()-Methode nicht. Im Gegensatz dazu verfügt das IE-Ereignisobjekt über eine cancleBubble-Eigenschaft. Wenn diese Eigenschaft auf „true“ gesetzt wird, wird verhindert, dass sich das Ereignis weiter ausbreitet. (IE8 und frühere Versionen unterstützen die Erfassungsphase der Ereignisweitergabe nicht, daher ist Bubbling die einzige Ereignisweitergabe, die abgebrochen wird.)
Der aktuelle Entwurf der DOM-Ereignisspezifikation definiert eine weitere Methode für das Event-Objekt mit dem Namen stopImmediatePropagation ( ). Wie stopPropagation() verhindert diese Methode die Ereignisweitergabe von anderen Objekten, verhindert aber auch, dass alle anderen für dasselbe Objekt registrierten Ereignishandler aufgerufen werden.
function stopHandler(event) window.event?window.event.cancelBubble=true:event.stopPropagation(); }
Das Obige ist der gesamte Inhalt dieses Artikels, I Ich hoffe, es gefällt euch.
Weitere verwandte Tutorials finden Sie unter JavaScript-Video-Tutorial