Table des matières
Empêcher le La méthode de bouillonnement
Empêcher le comportement par défaut
Maison interface Web js tutoriel Comment arrêter le bouillonnement et empêcher le comportement par défaut du navigateur dans js

Comment arrêter le bouillonnement et empêcher le comportement par défaut du navigateur dans js

Jun 26, 2017 am 11:45 AM
firefox ie javascript js webkit arrêt bulle 浏览器

 <br>
Copier après la connexion

Compatible avec les événements

function myfn(e){ var evt = e ? e:window.event; }
Copier après la connexion

js arrête de bouillonner

function myfn(e){
window.event? window.event.cancelBubble = true : e.stopPropagation();
}
Copier après la connexion

js empêche le comportement par défaut

function myfn(e){
window.event? window.event.returnValue = false : e.preventDefault();
}
Copier après la connexion

Empêcher le La méthode de bouillonnement

w3c est e.stopPropagation(), et IE utilise e.cancelBubble = true

stopPropagation est également une méthode de l'objet événement (Event). La fonction est d'empêcher l'événement de bouillonnement de l'élément cible, mais n'empêchera pas le comportement par défaut. 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=&#39;div&#39; onclick=&#39;alert("div");&#39;>
<ul onclick=&#39;alert("ul");&#39;>
<li onclick=&#39;alert("li");&#39;>test</li>
</ul>
</div>
Copier après la connexion

Le ci-dessus, la démo est la suivante Lorsque nous cliquons sur test, alert("li"), alert("ul"), alert("div"). sera déclenché en séquence, c'est un événement bouillonnant.

Empêcher le bouillonnement

window.event? window.event.cancelBubble = true : e.stopPropagation();
Copier après la connexion

Empêcher le comportement par défaut

La méthode w3c est e.preventDefault(), IE utilise e.returnValue = false;

preventDefault, qui 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;
}
}
Copier après la connexion


return false

le return false de javascript empêchera uniquement le comportement par défaut, mais l'utilisation de

jQuery empêchera à la fois le comportement par défaut et empêchera l'objet de bouillonner.

Ce qui suit utilise du js natif, qui empêchera uniquement le comportement par défaut et n'arrêtera pas de bouillonner

<div id=&#39;div&#39;  onclick=&#39;alert("div");&#39;>
<ul  onclick=&#39;alert("ul");&#39;>
<li id=&#39;ul-a&#39; onclick=&#39;alert("li");&#39;><a href="http://caibaojian.com/"id="testB">caibaojian.com</a></li>
</ul>
</div>
var a = document.getElementById("testB");
a.onclick = function(){
return false;
};
Copier après la connexion

Ce qui suit est une démonstration utilisant
jQuery pour à la fois empêcher le comportement par défaut et arrêter le bouillonnement

//code from 
<div id=&#39;div&#39;  onclick=&#39;alert("div");&#39;>
<ul  onclick=&#39;alert("ul");&#39;>
<li id=&#39;ul-a&#39; onclick=&#39;alert("li");&#39;><a href="http://caibaojian.com/"id="testC">caibaojian.com</a></li>
</ul>
</div>
$("#testC").on('click',function(){
return false;
});
Copier après la connexion
 : arrêter le bouillonnement et empêcher le comportement par défaut

Résumé d'utilisation

Lorsque vous devez arrêter le comportement de bouillonnement, vous pouvez utiliser

function stopBubble(e) { 
//如果提供了事件对象,则这是一个非IE浏览器 
if ( e && e.stopPropagation ) 
    //因此它支持W3C的stopPropagation()方法 
    e.stopPropagation(); 
else 
    //否则,我们需要使用IE的方式来取消事件冒泡 
    window.event.cancelBubble = true; 
}
Copier après la connexion
Lorsque vous devez empêcher le comportement par défaut, vous pouvez utiliser

//阻止浏览器的默认行为 
function stopDefault( e ) { 
    //阻止默认浏览器动作(W3C) 
    if ( e && e.preventDefault ) 
        e.preventDefault(); 
    //IE中阻止函数器默认动作的方式 
    else 
        window.event.returnValue = false; 
    return false; 
}
Copier après la connexion
Points d'attention de l'événement

  1. l'événement représente le statut de l'événement, comme le déclenchement de l'objet événement Éléments, la position et l'état de la souris, les touches enfoncées, etc.

  2. l'objet événement n'est valable 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 le biais 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.

  1. 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
}
Copier après la connexion

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment afficher correctement le 'Jingnan Mai Round Body' installé localement sur la page Web? Comment afficher correctement le 'Jingnan Mai Round Body' installé localement sur la page Web? Apr 05, 2025 pm 10:33 PM

En utilisant récemment des fichiers de police installés localement dans les pages Web, j'ai téléchargé une police gratuite à partir d'Internet et je l'ai installée avec succès dans mon système. Maintenant...

Comment contrôler le haut et la fin des pages dans les paramètres d'impression du navigateur via JavaScript ou CSS? Comment contrôler le haut et la fin des pages dans les paramètres d'impression du navigateur via JavaScript ou CSS? Apr 05, 2025 pm 10:39 PM

Comment utiliser JavaScript ou CSS pour contrôler le haut et la fin de la page dans les paramètres d'impression du navigateur. Dans les paramètres d'impression du navigateur, il existe une option pour contrôler si l'écran est ...

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Apr 05, 2025 pm 10:18 PM

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Pendant la programmation, les marges négatives dans CSS (négatif ...

Comment utiliser des fichiers de police installés localement sur les pages Web? Comment utiliser des fichiers de police installés localement sur les pages Web? Apr 05, 2025 pm 10:57 PM

Comment utiliser des fichiers de police installés localement sur les pages Web avez-vous rencontré cette situation dans le développement de pages Web: vous avez installé une police sur votre ordinateur ...

Le texte sous la disposition Flex est omis mais le conteneur est ouvert? Comment le résoudre? Le texte sous la disposition Flex est omis mais le conteneur est ouvert? Comment le résoudre? Apr 05, 2025 pm 11:00 PM

Le problème de l'ouverture des conteneurs en raison d'une omission excessive du texte sous disposition flexible et de solutions est utilisé ...

Pourquoi un élément div spécifique dans le navigateur Edge ne s'affiche-t-il pas? Comment résoudre ce problème? Pourquoi un élément div spécifique dans le navigateur Edge ne s'affiche-t-il pas? Comment résoudre ce problème? Apr 05, 2025 pm 08:21 PM

Comment résoudre le problème d'affichage causé par les feuilles de style d'agent utilisateur? Lorsque vous utilisez le navigateur Edge, un élément DIV du projet ne peut pas être affiché. Après avoir vérifié, j'ai posté ...

Comment sélectionner et définir correctement le style d'élément avec le premier nom de classe 'Red' dans CSS? Comment sélectionner et définir correctement le style d'élément avec le premier nom de classe 'Red' dans CSS? Apr 05, 2025 pm 08:24 PM

Comment sélectionner et définir le style d'élément pour la première classe spécifique? Dans le développement Web, il est souvent nécessaire de styliser des éléments de noms de classe spécifiques, surtout lorsque ...

Comment réaliser l'effet de défilement horizontal des options horizontales par des éléments tournants dans le CSS? Comment réaliser l'effet de défilement horizontal des options horizontales par des éléments tournants dans le CSS? Apr 05, 2025 pm 10:51 PM

Comment réaliser l'effet de défilement horizontal des options horizontales dans le CSS? Dans la conception Web moderne, comment réaliser un effet de type onglet horizontal et soutenir la souris ...

See all articles