Manchmal können Sie E.StopPropagation () verwenden; E.PreventDefault (); Um zu verhindern, dass Ereignisse sprudeln und Ausführung von Standardereignissen ausführen. Aber das Hinzufügen von Ereignissen kann nicht verhindert werden.
Unter welchen Umständen sollten wir die Hinzufügung von Ereignissen verhindern?
Zum Beispiel:
Klicken Sie auf "Checkout". Wenn Sie dies betreiben, hat die Kasse selbst eigene Ereignisse, aber Sie müssen feststellen, ob Sie sich anmelden möchten, bevor Sie sich auschecken.
Wir könnten Folgendes schreiben:
JS -Code
Die Codekopie lautet wie folgt:
if (islogin) {// beurteilen Sie, ob sich anmelden soll
console.log ("no login")
}anders{
// Kasse miteinander zu tun
}
Wenn Sie auf "meine Homepage" klicken, haben Sie auch ein Anmeldeurteil
Login -Urteilscode
if (islogin) {// beurteilen Sie, ob sich anmelden soll
console.log ("no login")
}anders{
// persönliches Zentrum
}
Wenn es mehr Login -Urteile gibt. Wird es mehr Codes wie die oben genannten geben? Später stellte ich fest, dass die Methode stopiMediatePropagation () das Ereignis angehängt hat. Die obige Frage ist kein Problem.
Wichtig: Stellen Sie sicher, dass das Anmeldung feststellt, dass das Ereignis das erste gebundene Ereignis ist.
Democode
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<head Lang = "en">
<meta charset = "utf-8">
<title> Demo </title>
<script src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"> </script>
</head>
<body>
<a href = "#"> Kasse </a>
<ul>
<li> Favoriten </li> hinzufügen
<li> Andere zahlen </li>
<li> Hinzufügen, um ein Auto zu kaufen </li>
<li> Meine Homepage </li>
</ul>
<Script>
// zuerst binden
$ (". Islogin"). On ("Click", Funktion (e) {
if (true) {// Login -Urteilsvermögen
alarm ("no login");
E.StopimmediatePropagation ();
}
false zurückgeben;
});
$ (". Bill"). On ("Click", function () {
ALERT ("Inhalte im Kasse verwandte!");
});
$ (". A1"). On ("Click", function () {
alarm ("a1");
});
$ (". A2"). On ("Click", function () {
alarm ("A2");
});
$ (". A3"). On ("Click", function () {
ALERT ("Zu Wagen hinzugefügt");
});
$ (". A4"). On ("Click", function () {
ALERT ("Es gibt ein Login -Urteil");
});
</script>
</body>
</html>
Tatsächlich bietet JQuery eine Methode, um Ereignisse $ ._ Data ($ ('. Islogin') anzuzeigen.
JS -Code
$ ._ Daten ($ ('. Islogin'). Get (0))
Sie werden Folgendes sehen:
JS -Code
Objekt {events = {...}, Handle = function ()}
Klicken Sie hier, um das Ereignis -Array anzuzeigen, um anzuzeigen, welche Art von Ereignissen an das Element gebunden sind.