Terkadang Anda dapat menggunakan E.Stoppropagation (); e.preventdefault (); Untuk mencegah peristiwa menggelegak dan melaksanakan peristiwa default. Tetapi penambahan peristiwa tidak dapat dicegah.
Dalam keadaan apa kita harus mencegah penambahan peristiwa?
Misalnya:
Klik "Checkout". Saat Anda mengoperasikan ini, checkout itu sendiri memiliki acara sendiri, tetapi Anda harus menentukan apakah akan masuk sebelum check out.
Kami mungkin menulis ini:
Kode JS
Salinan kode adalah sebagai berikut:
if (isLogin) {// menilai apakah akan masuk
Console.log ("No Login")
}kalau tidak{
// Kode terkait checkout
}
Jika Anda mengklik "beranda saya", Anda juga akan memiliki penilaian login
Kode penilaian login
if (isLogin) {// menilai apakah akan masuk
Console.log ("No Login")
}kalau tidak{
// Pusat Pribadi
}
Jika ada lebih banyak penilaian login. Apakah akan ada lebih banyak kode seperti yang di atas? Kemudian saya mengetahui bahwa metode stopimmediatepropagation () mencegah penambahan peristiwa. Pertanyaan di atas bukanlah masalah.
Penting: Pastikan login menentukan bahwa acara tersebut adalah acara terikat pertama.
Kode demo
Salinan kode adalah sebagai berikut:
<! Doctype html>
<Html>
<head lang = "en">
<meta charset = "UTF-8">
<title> demo </iteme>
<skrip src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"> </script>
</head>
<body>
<a href = "#"> checkout </a>
<ul>
<li> Tambahkan ke favorit </li>
<li> Orang lain membayar </li>
<li> Tambahkan untuk membeli mobil </li>
<li> Halaman beranda saya </li>
</ul>
<script>
// Bind dulu
$ (". isLogin"). on ("click", function (e) {
if (true) {// penilaian login
alert ("No Login");
E.SopimmediatePropagation ();
}
mengembalikan false;
});
$ (". Bill"). on ("click", function () {
Peringatan ("Konten Terkait Checkout!");
});
$ (". A1"). on ("click", function () {
peringatan ("A1");
});
$ (". a2"). on ("click", function () {
peringatan ("A2");
});
$ (". a3"). on ("click", function () {
peringatan ("Ditambahkan ke CART");
});
$ (". a4"). on ("click", function () {
peringatan ("Ada penilaian login");
});
</script>
</body>
</html>
Faktanya, JQuery memberi kita metode untuk melihat acara $ ._ data ($ ('. Islogin'). Dapatkan (0)), buka Firebug, dan masukkan di konsol.
Kode JS
$ ._ Data ($ ('. Islogin'). Get (0))
Anda akan melihat yang berikut:
Kode JS
Objek {events = {...}, handle = function ()}
Klik untuk melihat array acara untuk memfasilitasi melihat jenis acara apa yang terikat pada elemen.