Parfois, vous pouvez utiliser e.stopPropagation(); e.preventDefault(); pour empêcher la propagation d'événements et l'exécution d'événements par défaut. Mais cela ne peut pas empêcher l’ajout de l’événement.
Dans quelles circonstances doit-on empêcher l'ajout d'événements ?
Par exemple :
Cliquez sur « Commander ». Ce faisant, le paiement lui-même a son propre événement, mais vous devez déterminer si vous devez vous connecter avant de procéder au paiement.
On pourrait écrire :
Code Js
if(isLogin){ //Déterminer s'il faut se connecter
console.log("Non connecté")
}autre{
// Code associé à la commande
>
Si vous cliquez sur "Ma page d'accueil", il y a également un contrôle de connexion
Code de jugement de connexion
if(isLogin){ //Déterminer si vous devez vous connecter
console.log("Non connecté")
}autre{
//Centre personnel
}
S'il y a plus de connexions à juger. Y aura-t-il plus de code comme celui ci-dessus ? Plus tard, j'ai découvert la méthode stopImmediatePropagation() pour empêcher l'ajout d'événements. Le problème ci-dessus n'est plus un problème.
Important : assurez-vous que l'événement de jugement de connexion est le premier événement lié.
Code démo
démo
Commander
- Ajouter aux favoris
- Payer par d'autres
- Ajouter au panier
- Ma page d'accueil
<script>
// Lier d'abord <br>
$(".isLogin").on("clic", function (e) { <br>
<br>
if(true){ //Jugement de connexion <br>
alert("Non connecté"); <br>
e.stopImmediatePropagation(); <br>
} <br>
<br>
renvoie faux ; <br>
}); <br>
<br>
$(".bill").on("click",function(){ <br>
alert("Commander le contenu associé !"); <br>
}); <br>
<br>
$(".a1").on("click",function(){ <br>
alerte("a1"); <br>
}); <br>
<br>
$(".a2").on("click",function(){ <br>
alerte("a2"); <br>
}); <br>
<br>
$(".a3").on("click",function(){ <br>
alert("Ajouté au panier"); <br>
}); <br>
<br>
$(".a4").on("clic",function(){ <br>
alert("Détermination de la connexion"); <br>
}); <br>
<br>
<br>
</script>
En fait, jquery nous fournit la méthode $._data($('.isLogin').get(0)) pour visualiser les événements, ouvrir Firebug et entrer dans la console.
Code Js
$._data($('.isLogin').get(0))
Vous verrez ce qui suit :
Code Js
Objet { events={...}, handle=function()}
Cliquez pour voir le tableau d'événements, ce qui permet de voir facilement quels événements sont liés à l'élément.