Cette fois, je vais vous montrer comment empêcher le bouillonnement de JS et le comportement par défaut du navigateur. Quelles sont les précautions pour empêcher le bouillonnement de JS et le comportement par défaut du navigateur. est un cas pratique. Jetons un coup d’oeil.
Compatibilité des événements :
function myfn(e){ var evt = e :window.event;🎜>
js arrête le bouillonnement de l'événementfunction myfn(e){ window.event? window.event.cancelBubble = true : e.stopPropagation(); }
function myfn(e){ window.event? window.event.returnValue = false : e.preventDefault(); }
JavaScriptarrêter le bouillonnement et empêcher le comportement par défaut
Empêcher le bouillonnementLa méthode de w3c est e.stopPropagation(), et IE utilise e.cancelBubble = truestopPropagation est également une méthode de l'objet événement (Event). Sa fonction est d'empêcher l'événement bouillonnant de l'élément cible, mais. ce sera le comportement par défaut qui n'est pas bloqué. Qu’est-ce qu’un événement bouillonnant ? Si un événement « clic » est lié à un bouton, l'événement « clic » sera à son tour déclenché dans son élément parent. stopPropagation empêche les événements de l'élément cible de remonter jusqu'à l'élément parent. Par exemple :<div id='div' onclick='alert("div");'> <ul onclick='alert("ul");'> <li onclick='alert("li");'>test</li> </ul> </div>
window.event? window.event.cancelBubble = true : e.stopPropagation();
preventDefault est une méthode de l'objet événement (Event), et sa fonction est d'annuler le comportement par défaut d'un élément cible. Puisque nous parlons de comportement par défaut, l'élément doit bien sûr avoir un comportement par défaut avant de pouvoir être annulé. Si l'élément lui-même n'a pas de comportement par défaut, l'appel sera bien sûr invalide. Quels éléments ont des comportements par défaut ? Tels que le lien , le bouton de soumission , etc. Lorsque l'objet événementiel annulable est faux, cela signifie qu'il n'y a pas de comportement par défaut. Même s'il existe un comportement par défaut, l'appel de PreventDefault ne fonctionnera pas. Nous savons tous que l'action par défaut du lien est de sauter à la page spécifiée. Prenons-le comme exemple pour l'empêcher de sauter :
//假定有链接<a href="http://caibaojian.com/" id="testA" >caibaojian.com</a> var a = document.getElementById("testA"); a.onclick =function(e){ if(e.preventDefault){ e.preventDefault(); }else{ window.event.returnValue == false; } }
<div id='div' onclick='alert("div");'> <ul onclick='alert("ul");'> <li id='ul-a' onclick='alert("li");'><a href="http://caibaojian.com/"id="testB">caibaojian.com</a></li> </ul> </div> var a = document.getElementById("testB"); a.onclick = function(){ return false; };
<div id='div' onclick='alert("div");'> <ul onclick='alert("ul");'> <li id='ul-a' onclick='alert("li");'><a href="http://caibaojian.com/"id="testC">caibaojian.com</a></li> </ul> </div> $("#testC").on('click',function(){ return false; });
function stopBubble(e) { //如果提供了事件对象,则这是一个非IE浏览器 if ( e && e.stopPropagation ) //因此它支持W3C的stopPropagation()方法 e.stopPropagation(); else //否则,我们需要使用IE的方式来取消事件冒泡 window.event.cancelBubble = true; }
//阻止浏览器的默认行为 function stopDefault( e ) { //阻止默认浏览器动作(W3C) if ( e && e.preventDefault ) e.preventDefault(); //IE中阻止函数器默认动作的方式 else window.event.returnValue = false; return false; }
l'objet événement n'est valide que pendant l'événement.
Les événements de Firefox sont différents de ceux d'IE. Ceux d'IE sont des variables globales et peuvent être utilisés à tout moment. Ceux de Firefox ne peuvent être utilisés que par guidage de paramètres et sont des variables temporaires au moment de l'exécution.
Dans IE/Opera, c'est window.event, dans Firefox, c'est event ; et l'objet de l'événement est window.event.srcElement dans IE, dans Firefox, c'est event.target, les deux sont disponibles dans Opera. Les deux phrases suivantes ont le même effet :function a(e){ var e = (e) ? e : ((window.event) ? window.event : null); var e = e || window.event; // firefox下window.event为null, IE下event为null
Le plug-in de téléchargement asynchrone d'aja
jQuery implémente la vérification de formulaire après une vérification multicouche
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!