Maison interface Web js tutoriel Pas de prise en charge des événements bouillonnants : limites et portée

Pas de prise en charge des événements bouillonnants : limites et portée

Jan 13, 2024 pm 12:51 PM
événement bouillonnant limitation Le bouillonnement n'est pas pris en charge

Pas de prise en charge des événements bouillonnants : limites et portée

Bubbling Event fait référence à une méthode de diffusion d'événement qui est déclenchée étape par étape des éléments enfants aux éléments parents dans l'arborescence DOM. Dans la plupart des cas, les événements bouillonnants sont très flexibles et évolutifs, mais il existe des cas particuliers dans lesquels les événements ne prennent pas en charge le bouillonnement.

1. Quels événements ne prennent pas en charge le bouillonnement ?
Bien que la plupart des événements prennent en charge le bouillonnement, certains événements ne le prennent pas en charge. Voici quelques événements courants qui ne prennent pas en charge le bouillonnement :

  1. événements de mise au point et de flou
  2. événements de chargement et de déchargement
  3. saisie, sélection et modification d'événements
  4. soumission et réinitialisation d'événements
  5. événements de défilement
  6. événements mouseenter et mouseleave
  7. événement de menu contextuel

2. Exemples d'événements
Afin de mieux comprendre les limites des événements bouillonnants, des exemples de code spécifiques sont donnés ci-dessous pour chaque événement qui ne prend pas en charge le bouillonnement pour une meilleure compréhension :

  1. événements focus et flou
    focus et les événements de flou sont des événements utilisés pour gérer les éléments qui gagnent ou perdent le focus. Ces événements ne prennent pas en charge le bullage, ce qui signifie que lorsque vous déclenchez un événement focus ou blur sur un élément enfant, l'événement correspondant sur l'élément parent ne sera pas déclenché.

Code HTML :

<div>
  <input type="text" id="myInput">
</div>
Copier après la connexion

Code JavaScript :

const myInput = document.getElementById('myInput');
myInput.addEventListener('focus', function() {
  console.log('Input获得焦点');
});
const myDiv = document.querySelector('div');
myDiv.addEventListener('focus', function() {
  console.log('Div获得焦点');
});
Copier après la connexion

Résultat :
Lorsque la zone de texte obtient le focus, seul « L'entrée obtient le focus » sera affiché dans la console, mais « Div obtient le focus » ne sera pas affiché. Parce que l’événement focus ne remonte pas jusqu’à l’élément parent div.

  1. Événements de chargement et de déchargement
    Les événements de chargement et de déchargement sont des événements qui sont déclenchés après le chargement de la page ou de la ressource. Ces événements ne prennent pas en charge le bullage, ce qui signifie que lorsqu'un événement de chargement ou de déchargement est déclenché sur un élément enfant, l'événement correspondant sur l'élément parent ne sera pas déclenché.

Code HTML :

<div>
  <img  src="/static/imghw/default1.png"  data-src="image.png"  class="lazy" id="myImage" alt="Pas de prise en charge des événements bouillonnants : limites et portée" >
</div>
Copier après la connexion

Code JavaScript :

const myImage = document.getElementById('myImage');
myImage.addEventListener('load', function() {
  console.log('图片加载完成');
});
const myDiv = document.querySelector('div');
myDiv.addEventListener('load', function() {
  console.log('Div加载完成');
});
Copier après la connexion

Résultat :
Lorsque le chargement de l'image est terminé, seul "Chargement de l'image terminé" sera affiché dans la console et "Chargement Div terminé" ne sera pas affiché. Parce que l'événement de chargement ne remonte pas jusqu'à l'élément parent div.

  1. Événements de saisie, de sélection et de modification
    Les événements de saisie, de sélection et de modification sont des événements utilisés pour gérer les modifications de la valeur des éléments du formulaire. Ces événements n'affectent que l'élément dont la valeur a réellement changé et ne remonteront pas jusqu'à l'élément parent.

Code HTML :

<input type="text" id="myInput">
Copier après la connexion

Code JavaScript :

const myInput = document.getElementById('myInput');
myInput.addEventListener('input', function() {
  console.log('输入框值改变');
});
const myForm = document.querySelector('form');
myForm.addEventListener('input', function() {
  console.log('表单值改变');
});
Copier après la connexion

Résultat :
Lorsque la valeur de la zone de saisie change, seule la "Valeur de la zone de saisie modifiée" sera affichée sur la console, mais la "Valeur du formulaire modifiée" ne le sera pas. sortir. Parce que l'événement d'entrée ne remonte pas jusqu'au formulaire de l'élément parent.

  1. événements de soumission et de réinitialisation
    les événements de soumission et de réinitialisation sont des événements qui sont déclenchés lorsqu'un formulaire est soumis et réinitialisé. Ces événements ne peuvent être appliqués qu'à l'élément de formulaire lui-même et ne seront pas transmis aux éléments parents.

Code HTML :

<form id="myForm">
  <input type="submit" value="提交">
</form>
Copier après la connexion

Code JavaScript :

const myForm = document.getElementById('myForm');
myForm.addEventListener('submit', function(event) {
  event.preventDefault();
  console.log('表单已提交');
});
const myDiv = document.querySelector('div');
myDiv.addEventListener('submit', function() {
  console.log('Div提交');
});
Copier après la connexion

Résultat :
Lorsque vous cliquez sur le bouton de soumission, seul "Formulaire soumis" sera affiché dans la console, mais "Div soumis" ne sera pas affiché. Parce que l’événement submit ne remonte pas jusqu’à l’élément parent div. Notez que dans l'exemple, nous empêchons le comportement de soumission par défaut du formulaire via la méthode event.preventDefault().

  1. événement de défilement
    l'événement de défilement est un événement qui est déclenché lors du défilement. Cet événement ne prend pas en charge le bullage, ce qui signifie que lors du défilement d'un élément, l'événement scroll sur l'élément parent ne sera pas déclenché.

Code HTML :

<div style="height: 100px; width: 100px; overflow: auto;">
  <p>这是一段很长的文本</p>
</div>
Copier après la connexion

Code JavaScript :

const myDiv = document.querySelector('div');
myDiv.addEventListener('scroll', function() {
  console.log('滚动');
});
Copier après la connexion

Résultat :
Lorsque le div défile, "scroll" ne sera affiché que dans la console et ne bouillonnera pas vers l'élément supérieur.

  1. Événementsmouseenter et mouseleave
    Les événementsmouseenter et mouseleave sont des événements qui sont déclenchés lorsque la souris entre et quitte un élément. Ces événements ne prennent pas en charge le bullage, ce qui signifie que lorsque la souris entre ou quitte un élément, l'événement correspondant sur l'élément parent ne sera pas déclenché.

Code HTML :

<div id="myDiv" style="background-color: yellow; width: 100px; height: 100px;">
  <p>鼠标进入这个div</p>
</div>
Copier après la connexion

Code JavaScript :

const myDiv = document.getElementById('myDiv');
myDiv.addEventListener('mouseenter', function() {
  console.log('鼠标进入div');
});
const myBody = document.querySelector('body');
myBody.addEventListener('mouseenter', function() {
  console.log('鼠标进入body');
});
Copier après la connexion

Résultat :
Lorsque la souris entre dans le div, seul "la souris entre dans le div" sera affiché dans la console, mais "la souris entre dans le corps" ne sera pas affiché.

  1. événement de menu contextuel
    l'événement de menu contextuel est un événement déclenché lorsque le bouton droit de la souris est cliqué. Cet événement ne prend pas en charge le bouillonnement, ce qui signifie que lorsque vous cliquez avec le bouton droit sur un élément, l'événement de menu contextuel sur l'élément parent ne sera pas déclenché.

Code HTML :

<div id="myDiv" style="background-color: yellow; width: 100px; height: 100px;"></div>
Copier après la connexion

Code JavaScript :

const myDiv = document.getElementById('myDiv');
myDiv.addEventListener('contextmenu', function(event) {
  event.preventDefault();
  console.log('右键点击');
});
const myBody = document.querySelector('body');
myBody.addEventListener('contextmenu', function() {
  console.log('右键点击body');
});
Copier après la connexion

Résultat :
Lorsque vous faites un clic droit sur le div, seul le "clic droit" sera affiché dans la console, mais le "clic droit sur le corps" sera affiché ne sera pas émis. Notez que dans l'exemple, nous empêchons l'affichage du menu contextuel par défaut via la méthode event.preventDefault().

3.Résumé
Les événements de bulle sont une méthode de transmission d'événements qui déclenche des événements étape par étape des éléments enfants aux éléments parents dans l'arborescence DOM. La plupart des événements prennent en charge le bouillonnement, mais certains événements spéciaux ne le prennent pas en charge. Cet article analyse les événements qui ne prennent pas en charge le bouillonnement à travers des exemples de code spécifiques, dans l'espoir d'aider les lecteurs à comprendre les limites des événements de bouillonnement.

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Analyser les avantages et les inconvénients de la technologie de positionnement statique Analyser les avantages et les inconvénients de la technologie de positionnement statique Jan 18, 2024 am 11:16 AM

Analyse des avantages et des limites de la technologie de positionnement statique Avec le développement de la science et de la technologie modernes, la technologie de positionnement est devenue un élément indispensable de nos vies. La technologie de positionnement statique en fait partie. Elle présente des avantages et des limites uniques. Cet article procédera à une analyse approfondie de la technologie de positionnement statique pour mieux comprendre son état d'application actuel et ses tendances de développement futures. Examinons d’abord les avantages de la technologie de positionnement statique. La technologie de positionnement statique permet de déterminer les informations de position en observant, mesurant et calculant l'objet à positionner. Par rapport à d'autres technologies de positionnement,

Quels sont les moyens courants pour éviter les événements bouillonnants ? Quels sont les moyens courants pour éviter les événements bouillonnants ? Feb 19, 2024 pm 10:25 PM

Quelles sont les commandes couramment utilisées pour empêcher les événements bouillonnants ? Dans le développement Web, nous rencontrons souvent des situations où nous devons gérer le bouillonnement d’événements. Lorsqu'un événement est déclenché sur un élément, tel qu'un événement de clic, son élément parent déclenchera également le même événement. Ce comportement de transmission d'événements est appelé bouillonnement d'événements. Parfois, nous souhaitons empêcher un événement de se produire, afin que l'événement ne se déclenche que sur l'élément actuel et l'empêche d'être transmis aux éléments supérieurs. Pour y parvenir, nous pouvons utiliser certaines directives courantes qui empêchent les événements de bouillonnement. event.stopPropa

Pas de prise en charge des événements bouillonnants : limites et portée Pas de prise en charge des événements bouillonnants : limites et portée Jan 13, 2024 pm 12:51 PM

L'événement bouillonnant (BubblingEvent) fait référence à une méthode de transmission d'événements qui est déclenchée étape par étape des éléments enfants aux éléments parents dans l'arborescence DOM. Dans la plupart des cas, les événements bouillonnants sont très flexibles et évolutifs, mais il existe des cas particuliers dans lesquels les événements ne prennent pas en charge le bouillonnement. 1. Quels événements ne prennent pas en charge le bouillonnement ? Bien que la plupart des événements prennent en charge le bouillonnement, certains événements ne le prennent pas en charge. Voici quelques événements courants qui ne prennent pas en charge le bullage : les événements de focus et de flou se chargent et se déchargent.

Quels événements ne peuvent pas éclater ? Quels événements ne peuvent pas éclater ? Nov 20, 2023 pm 03:00 PM

Les événements qui ne peuvent pas faire de bulle sont : 1. l'événement focus ; 2. l'événement flou ; 3. l'événement scroll ; 4. les événements mouseenter et mouseleave ; 5. les événements mouseover et mousemove ; 7. l'événement keypress ; ; 9. Événement DOMContentLoaded ; 10. Événements couper, copier et coller, etc.

Quelle est la signification des événements bouillonnants Quelle est la signification des événements bouillonnants Feb 19, 2024 am 11:53 AM

Les événements bouillonnants signifient que dans le développement Web, lorsqu'un événement est déclenché sur un élément, l'événement se propage aux éléments supérieurs jusqu'à ce qu'il atteigne l'élément racine du document. Cette méthode de propagation est comme une bulle qui monte progressivement du bas, c'est pourquoi on l'appelle un événement bouillonnant. Dans le développement réel, connaître et comprendre le fonctionnement des événements bouillonnants est très important pour gérer correctement les événements. Ce qui suit présentera en détail le concept et l’utilisation des événements bouillonnants à travers des exemples de code spécifiques. Tout d'abord, nous créons une simple page HTML avec un élément parent et trois enfants

Pourquoi les événements ne parviennent-ils pas à bouillonner ? Pourquoi les événements ne parviennent-ils pas à bouillonner ? Jan 13, 2024 am 08:50 AM

Pourquoi les événements ne se produisent-ils pas dans certains cas ? La diffusion d'événements signifie que lorsqu'un événement sur un élément est déclenché, l'événement se propage vers le haut depuis l'élément le plus interne jusqu'à ce qu'il soit transmis à l'élément le plus externe. Mais dans certains cas, l'événement ne peut pas bouillonner, c'est-à-dire qu'il ne sera traité que sur l'élément déclenché et ne sera pas transmis aux autres éléments. Cet article présentera quelques situations courantes, expliquera pourquoi les événements ne parviennent pas à bouillonner et fournira des exemples de code spécifiques. Utilisez le modèle de capture d'événements : la capture d'événements est un autre moyen de diffusion d'événements, par opposition à la diffusion d'événements.

Limitations des modèles C++ et comment les contourner ? Limitations des modèles C++ et comment les contourner ? Jun 02, 2024 pm 08:09 PM

Limitations des modèles C++ et comment les contourner : Gonflement de code : les modèles génèrent plusieurs instances de fonctions, qui peuvent être contournées via des optimiseurs, des paramètres de modèle variables et une compilation conditionnelle au moment de la compilation. Temps de compilation long : les modèles sont instanciés au moment de la compilation, ce qui peut éviter de définir des fonctions de modèle dans les fichiers d'en-tête, en les instanciant uniquement lorsque cela est nécessaire et en utilisant la technologie PIMPL pour les éviter. Effacement de type : les modèles effacent les informations de type au moment de la compilation, ce qui peut être contourné grâce à la spécialisation des modèles et aux informations de type à l'exécution (RTTI).

Quelles sont les consignes pour éviter les événements bouillonnants ? Quelles sont les consignes pour éviter les événements bouillonnants ? Nov 21, 2023 pm 04:14 PM

Les instructions pour empêcher les événements bouillonnants incluent stopPropagation(), l'attribut CancelBubble, event.stopPropagation(), l'attribut event.cancelBubble, event.stopImmediatePropagation(), etc. Introduction détaillée : 1. stopPropagation() est l'une des instructions les plus couramment utilisées, pour arrêter la propagation des événements. Lorsqu'un événement est déclenché, l'appel de cette méthode peut empêcher l'événement de continuer, etc.

See all articles