Maison > interface Web > js tutoriel > le corps du texte

La méthode d'implémentation spécifique pour empêcher l'ajout d'événements dans js

怪我咯
Libérer: 2017-07-06 11:35:39
original
1854 Les gens l'ont consulté

Vous pouvez utiliser e.stopPropagation(); e.preventDefault(); pour empêcher l' événement de bouillonner et l'exécution de l'événement par défaut. Mais cela ne peut pas empêcher l'ajout d'événements. Si vous souhaitez en ajouter, veuillez consulter la méthode d'implémentation ci-dessous

Parfois, vous pouvez utiliser e.stopPropagation(); e.preventDefault(); des é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 ». Lorsque vous effectuez cette opération, 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.

Nous pourrions écrire comme ceci :

Code Js

Le code est le suivant :

if(isLogin){ //判断是否登录 
console.log("没有登录") 
}else{ 
//结账相关代码 
}
如果点击“我的主页”也有登录判断
登录判断代码
if(isLogin){ //判断是否登录 
console.log("没有登录") 
}else{ 
//个人中心 
}
Copier après la connexion

S'il y a plus de jugements de connexion . 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

Le code est le suivant :

<!DOCTYPE html> 
<html> 
<head> 
<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="#" class="bill isLogin">结账 </a> 


<ul> 
<li class="a1 isLogin">加入收藏夹</li> 
<li class="a2 isLogin">他人支付</li> 
<li>加入购入车</li> 
<li class="a4 isLogin">我的主页</li> 
</ul> 

<script> 
//最先绑定 
$(".isLogin").on("click", function (e) { 

if(true){ //登录判断 
alert("没有登录"); 
e.stopImmediatePropagation(); 
} 

return false; 
}); 

$(".bill").on("click",function(){ 
alert("结账相关内容!"); 
}); 

$(".a1").on("click",function(){ 
alert("a1"); 
}); 

$(".a2").on("click",function(){ 
alert("a2"); 
}); 

$(".a3").on("click",function(){ 
alert("已加入购物车"); 
}); 

$(".a4").on("click",function(){ 
alert("有登录判断"); 
}); 


</script> 
</body> 
</html>
Copier après la connexion

En fait, jquery nous offre un moyen de visualiser les événements $._data($( '.isLogin' ).get(0)), ouvrez firebug et entrez dans la console.
Code Js

$._data($('.isLogin').get(0))

verra ce qui suit :

Code Js

Object { events={...}, handle=function()}

Cliquez pour voir l'événement array pour une visualisation facile des liaisons sur les éléments Quel genre d'événement s'est produit.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal