


Quelles sont les différences dans les mécanismes de réponse entre les événements bouillonnants et non bouillonnants ?
Quelle est la différence entre les événements avec bulles et les événements sans bulles ? Des exemples de code spécifiques sont requis
Les événements jouent un rôle important dans la programmation. Ils peuvent être des comportements d'interaction de l'utilisateur (tels que des clics, des glissements, etc.) ou. Il peut s'agir du comportement interne du navigateur ou de la page Web (comme la fin du chargement, le changement de la taille de la fenêtre, etc.). Selon différentes méthodes de propagation d’événements, les événements peuvent être divisés en événements bouillonnants et événements sans bulle.
Événements bouillonnants
Les événements bouillonnants font référence à des événements qui partent de la cible de l'événement et se propagent étape par étape vers les éléments supérieurs jusqu'à ce qu'ils atteignent le nœud racine du document. Pendant le processus de propagation, le gestionnaire d'événements de l'élément parent sera déclenché en premier, puis le gestionnaire d'événements de l'élément grand-parent, et ainsi de suite, jusqu'au gestionnaire d'événements du nœud racine.
Ce qui suit est un exemple de code pour un événement bouillonnant :
Code HTML :
<div id="outer"> <div id="inner"> <button id="button">点击</button> </div> </div>
Code JavaScript :
var outer = document.getElementById('outer'); var inner = document.getElementById('inner'); var button = document.getElementById('button'); button.addEventListener('click', function(event) { console.log('按钮被点击'); }); inner.addEventListener('click', function(event) { console.log('内部div被点击'); }); outer.addEventListener('click', function(event) { console.log('外部div被点击'); });
Lorsque vous cliquez sur le bouton, la console affichera ce qui suit :
按钮被点击 内部div被点击 外部div被点击
Comme le montre la sortie , bouillonnant L'événement déclenche d'abord le gestionnaire d'événements de clic du bouton, puis le gestionnaire d'événements de clic du div interne et enfin le gestionnaire d'événements de clic du div externe.
Événements sans bulle
Les événements sans bulle signifient que l'événement ne sera déclenché que sur la cible de l'événement et ne se propagera pas vers le haut. En d'autres termes, seul le gestionnaire d'événements de l'élément cliqué sera exécuté.
Ce qui suit est un exemple de code pour un événement sans bulle :
Code HTML :
<div id="outer"> <div id="inner"> <button id="button">点击</button> </div> </div>
Code JavaScript :
var outer = document.getElementById('outer'); var inner = document.getElementById('inner'); var button = document.getElementById('button'); button.addEventListener('click', function(event) { console.log('按钮被点击'); }); inner.addEventListener('click', function(event) { console.log('内部div被点击'); }); outer.addEventListener('click', function(event) { console.log('外部div被点击'); }, true);
Lorsque vous cliquez sur le bouton, la console n'affichera que ce qui suit :
按钮被点击
Comme on peut le voir à partir de la sortie, les événements sans bulles déclenchent uniquement le gestionnaire d'événements de clic du bouton.
Pour résumer, la principale différence entre les événements bouillonnants et les événements non bouillonnants réside dans la manière dont l'événement se propage. Les événements bouillonnants se propageront de la cible de l'événement aux éléments supérieurs, tandis que les événements non bouillonnants ne seront déclenchés que sur la cible de l'événement. Comprendre la différence entre ces deux événements est très important pour gérer la propagation des événements et optimiser l'effet interactif de la page.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds



La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.

Il n'y a pas de fonction de somme intégrée dans le langage C, il doit donc être écrit par vous-même. La somme peut être obtenue en traversant le tableau et en accumulant des éléments: Version de boucle: la somme est calculée à l'aide de la longueur de boucle et du tableau. Version du pointeur: Utilisez des pointeurs pour pointer des éléments de tableau, et un résumé efficace est réalisé grâce à des pointeurs d'auto-incitation. Allouer dynamiquement la version du tableau: allouer dynamiquement les tableaux et gérer la mémoire vous-même, en veillant à ce que la mémoire allouée soit libérée pour empêcher les fuites de mémoire.

Dans le langage C, la principale différence entre Char et WCHAR_T est le codage des caractères: Char utilise ASCII ou étend ASCII, WCHAR_T utilise Unicode; Char prend 1 à 2 octets, WCHAR_T occupe 2-4 octets; Char convient au texte anglais, WCHAR_T convient au texte multilingue; Le char est largement pris en charge, WCHAR_T dépend de la prise en charge du compilateur et du système d'exploitation Unicode; Le char est limité dans la gamme de caractères, WCHAR_T a une gamme de caractères plus grande et des fonctions spéciales sont utilisées pour les opérations arithmétiques.

Le multithreading est une technologie importante dans la programmation informatique et est utilisée pour améliorer l'efficacité de l'exécution du programme. Dans le langage C, il existe de nombreuses façons d'implémenter le multithreading, y compris les bibliothèques de threads, les threads POSIX et l'API Windows.

Bien que C et C # aient des similitudes, ils sont complètement différents: C est une gestion manuelle de la mémoire manuelle et un langage dépendant de la plate-forme utilisé pour la programmation système; C # est un langage orienté objet, des ordures et un langage indépendant de la plate-forme utilisé pour le bureau, l'application Web et le développement de jeux.

Explication détaillée de la méthode de recherche XPATH sous les nœuds DOM en JavaScript, nous devons souvent trouver des nœuds spécifiques de l'arbre Dom basé sur les expressions XPath. Si vous avez besoin de ...

Dans le développement d'applications de Hongmeng, comment capturer efficacement le comportement d'interaction des utilisateurs est une préoccupation commune pour les développeurs. Surtout comment l'ouvrir à travers un traditionnel ...

Les fonctions de langue C sont des blocs de code réutilisables. Ils reçoivent des entrées, effectuent des opérations et renvoient les résultats, ce qui améliore modulairement la réutilisabilité et réduit la complexité. Le mécanisme interne de la fonction comprend le passage des paramètres, l'exécution de la fonction et les valeurs de retour. L'ensemble du processus implique une optimisation telle que la fonction en ligne. Une bonne fonction est écrite en suivant le principe de responsabilité unique, un petit nombre de paramètres, des spécifications de dénomination et une gestion des erreurs. Les pointeurs combinés avec des fonctions peuvent atteindre des fonctions plus puissantes, telles que la modification des valeurs de variables externes. Les pointeurs de fonctions passent les fonctions comme des paramètres ou des adresses de magasin, et sont utilisées pour implémenter les appels dynamiques aux fonctions. Comprendre les fonctionnalités et les techniques des fonctions est la clé pour écrire des programmes C efficaces, maintenables et faciles à comprendre.
