Maison  >  Article  >  interface Web  >  Implémentation spécifique de js empêchant les compétences appending_javascript d'événement

Implémentation spécifique de js empêchant les compétences appending_javascript d'événement

WBOY
WBOYoriginal
2016-05-16 16:34:031260parcourir

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

Copier le code Le code est le suivant :

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

Copier le code Le code est le suivant :

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.
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn