Heim >Web-Frontend >js-Tutorial >So stoppen Sie das Sprudeln und verhindern das Standardverhalten des Browsers in js

So stoppen Sie das Sprudeln und verhindern das Standardverhalten des Browsers in js

零下一度
零下一度Original
2017-06-26 11:45:301239Durchsuche
 <br>

Ereigniskompatibel

function myfn(e){ var evt = e ? e:window.event; }

js hören auf zu sprudeln

function myfn(e){
window.event? window.event.cancelBubble = true : e.stopPropagation();
}

js verhindern Standardverhalten

function myfn(e){
window.event? window.event.returnValue = false : e.preventDefault();
}

Verhindern Sie das Methode zum Blasen

w3c ist e.stopPropagation(), und IE verwendet e.cancelBubble = true

stopPropagation ist auch eine Methode des Ereignisobjekts (Event). Die Funktion besteht darin, das Blasenereignis des Zielelements zu verhindern, verhindert jedoch nicht das Standardverhalten. Was ist ein sprudelndes Ereignis? Wenn ein „Klick“-Ereignis an eine Schaltfläche gebunden ist, wird das „Klick“-Ereignis wiederum in seinem übergeordneten Element ausgelöst. stopPropagation verhindert, dass Ereignisse vom Zielelement zum übergeordneten Element gelangen. Zum Beispiel: ·

e849e780724ad7e3d96667dbe71b15d8
d13c37413a3b74a6f638c2bd0a192e36
e625d1e300d7d5c06d09121b24123e42testbed06894275b65c1ab86501b08a632eb
929d1f5ca49e04fdcb27f9465b944689
16b28748ea4df4d9c2150843fecfba68

Das obige , die Demo sieht wie folgt aus: Wenn wir auf Test, Alert("li"), Alert("ul"), Alert("div") klicken. Wird nacheinander ausgelöst, handelt es sich um ein Ereignis, das sprudelt.

Blasenbildung verhindern

window.event? window.event.cancelBubble = true : e.stopPropagation();

Standardverhalten verhindern

Die w3c-Methode ist e.preventDefault(), IE verwendet e.returnValue = false;

preventDefault, eine Methode des Ereignisobjekts (Event), deren Funktion darin besteht, das Standardverhalten eines Zielelements abzubrechen. Da es sich um ein Standardverhalten handelt, muss das Element natürlich ein Standardverhalten haben, bevor es abgebrochen werden kann. Wenn das Element selbst kein Standardverhalten hat, ist der Aufruf natürlich ungültig. Welche Elemente haben Standardverhalten? Zum Beispiel Link 3499910bf9dac5ae3c52d5ede7383485, Senden-Schaltfläche 54b28e0e73a12e4a8ed487872a6fb5b8 usw. Wenn cancelable des Ereignisobjekts „false“ ist, bedeutet dies, dass es kein Standardverhalten gibt. Auch wenn es ein Standardverhalten gibt, funktioniert der Aufruf von „preventDefault“ nicht.

Wir alle wissen, dass die Standardaktion von Link 3499910bf9dac5ae3c52d5ede7383485 darin besteht, zur angegebenen Seite zu springen:

//假定有链接108bdfb517e761bb879be093c0040de3caibaojian.com5db79b134e9f6b82c0b36e0489ee08ed
var a = document.getElementById("testA");
a.onclick =function(e){
if(e.preventDefault){
e.preventDefault();
}else{
window.event.returnValue == false;
}
}


return false

javascripts return false verhindert nur das Standardverhalten, aber die Verwendung von jQuery verhindert sowohl das Standardverhalten als auch das Sprudeln des Objekts.

Im Folgenden wird natives js verwendet, das nur das Standardverhalten verhindert und nicht aufhört zu sprudeln

189abb41602d7abb5d5cced596eb4786
9a890ec87bb66ce61544c585573e657b
50ca1a0a17a7c2bd4f0d183bac237316d85963b455defc45a0e7b4a3d9b74ebecaibaojian.com5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
929d1f5ca49e04fdcb27f9465b944689
16b28748ea4df4d9c2150843fecfba68
var a = document.getElementById("testB");
a.onclick = function(){
return false;
};


Das Folgende ist eine Demonstration mit jQuery, um sowohl das Standardverhalten zu verhindern als auch das Sprudeln zu stoppen

//code from 
189abb41602d7abb5d5cced596eb4786
9a890ec87bb66ce61544c585573e657b
50ca1a0a17a7c2bd4f0d183bac2373169e974483976d37374c9db7635fc7fceacaibaojian.com5db79b134e9f6b82c0b36e0489ee08edbed06894275b65c1ab86501b08a632eb
929d1f5ca49e04fdcb27f9465b944689
16b28748ea4df4d9c2150843fecfba68
$("#testC").on('click',function(){
return false;
});

: Stoppen Sie das Sprudeln und verhindern Sie das Standardverhalten

Zusammenfassung der Verwendung

Wenn Sie das Blasenverhalten stoppen müssen, können Sie dies tun verwenden

function stopBubble(e) { 
//如果提供了事件对象,则这是一个非IE浏览器 
if ( e && e.stopPropagation ) 
    //因此它支持W3C的stopPropagation()方法 
    e.stopPropagation(); 
else 
    //否则,我们需要使用IE的方式来取消事件冒泡 
    window.event.cancelBubble = true; 
}

Wenn Sie das Standardverhalten verhindern müssen, können Sie

//阻止浏览器的默认行为 
function stopDefault( e ) { 
    //阻止默认浏览器动作(W3C) 
    if ( e && e.preventDefault ) 
        e.preventDefault(); 
    //IE中阻止函数器默认动作的方式 
    else 
        window.event.returnValue = false; 
    return false; 
}

Ereignis-Aufmerksamkeitspunkte

  1. Ereignis stellt den Status dar des Ereignisses, wie z. B. das Auslösen der Elemente des Ereignisobjekts, Mausposition und -status, gedrückte Tasten usw.;

  2. Ereignisobjekt ist nur während des Ereignisses gültig.

Die Ereignisse in Firefox unterscheiden sich von denen im IE. Die Ereignisse im IE sind globale Variablen und können jederzeit verwendet werden. Die Ereignisse im Firefox können nur durch Parameterführung verwendet werden. und sind zur Laufzeit temporäre Variablen.
Im IE/Opera ist es window.event, in Firefox ist es event und das Objekt des Ereignisses ist window.event.srcElement im IE, in Firefox ist es event.target, beide sind in Opera verfügbar.

  1. Die folgenden zwei Sätze haben die gleiche Wirkung:

function a(e){
var e = (e) ? e : ((window.event) ? window.event : null); 
var e = e || window.event; // firefox下window.event为null, IE下event为null
}

 <br>

Das obige ist der detaillierte Inhalt vonSo stoppen Sie das Sprudeln und verhindern das Standardverhalten des Browsers in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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