Manchmal können Sie e.stopPropagation(); e.preventDefault(); verwenden, um das Sprudeln von Ereignissen und die Ausführung von Standardereignissen zu verhindern. Es kann jedoch nicht verhindern, dass das Ereignis hinzugefügt wird.
Unter welchen Umständen sollten wir das Hinzufügen von Ereignissen verhindern?
Zum Beispiel:
Klicken Sie dabei auf „Zur Kasse gehen“. Der Checkout selbst hat sein eigenes Ereignis, aber Sie müssen festlegen, ob Sie sich vor dem Checkout anmelden möchten.
Wir könnten schreiben:
Js-Code
if(isLogin){ //Bestimmen Sie, ob Sie sich anmelden möchten
console.log("Nicht angemeldet")
}else{
//Checkout-bezogener Code
}
Wenn Sie auf „Meine Homepage“ klicken, erfolgt auch eine Login-Prüfung
Login-Beurteilungscode
if(isLogin){ //Bestimmen Sie, ob Sie sich anmelden möchten
console.log("Nicht angemeldet")
}else{
//Persönliches Zentrum
}
Ob es weitere Anmeldungen gibt, ist zu beurteilen. Wird es mehr Code wie den oben genannten geben? Später entdeckte ich die Methode stopImmediatePropagation(), um das Anhängen von Ereignissen zu verhindern. Das obige Problem ist kein Problem mehr.
Wichtig: Stellen Sie sicher, dass das Login-Beurteilungsereignis das erste gebundene Ereignis ist.
Democode
demo
Zur Kasse
- Zu Favoriten hinzufügen
- Bezahlen durch andere
- In den Warenkorb legen
- Meine Homepage
<script>
//Zuerst binden <br>
$(".isLogin").on("click", function (e) { <br>
<br>
if(true){ //Login-Urteil <br>
Alert("Nicht angemeldet"); <br>
e.stopImmediatePropagation(); <br>
} <br>
<br>
return false; <br>
}); <br>
<br>
$(".bill").on("click",function(){ <br>
warning("Zur Kasse gehender Inhalt!"); <br>
}); <br>
<br>
$(".a1").on("click",function(){ <br>
alarm("a1"); <br>
}); <br>
<br>
$(".a2").on("click",function(){ <br>
alarm("a2"); <br>
}); <br>
<br>
$(".a3").on("click",function(){ <br>
Alert("Zum Warenkorb hinzugefügt"); <br>
}); <br>
<br>
$(".a4").on("click",function(){ <br>
Alert("Login-Ermittlung"); <br>
}); <br>
<br>
<br>
</script>