DOM 中的事件处理介绍_DOM
该接口提供了 'addEventListener' 和 'removeEventListener' 方法,用来绑定或解绑一个 EventListeners 接口到一个 EventTarget。
DOM 2 Events 中定义了 Event 接口,用来提供事件的上下文信息,它提供了若干标准属性和方法。 实现 Event 接口的对象一般作为第一个参数传入事件处理函数,以用来提供当前事件相关的一些信息。
事件注册
根据 DOM 2 Events 中描述,节点使用 'addEventListener' 和 'removeEventListener' 方法绑定和解绑事件监听器,但 IE6 IE7 IE8 不支持这两个方法, 而使用 'attachEvent' 和 'detachEvent' 方法作为替代方案,Opera 两类方法都支持。Chrome Safari Firefox 只支持标准方法。
为了解决浏览器兼容问题,可以自定义函数来解决。例如:
var EventUtil = {
addHandler: function (element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
removeHandler: function (element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}
};
关于 'addEventListener' 和 'attachEvent' 有几点需要注意:
IE 不支持在捕获阶段触发事件监听器,'attachEvent' 方法没有提供参数说明是否响应在捕获阶段触发的事件;
'addEventListener' 和 'attachEvent' 都可以注册多个事件监听器;
在 Firefox Chrome Safari Opera 中给同一事件注册同一个事件监听器多次,重复注册的会被丢弃;而在 IE 中重复注册的事件监听器会被重复执行多次;
当给同一元素注册了多个事件监听器的时候,IE6 IE7 的事件监听器执行顺序是随机的,IE8 是倒序的,Firefox Chrome Safari Opera 是顺序的;
当元素注册的事件监听器中有非法的事件监听器时(非函数),在 IE Firefox 中会抛出异常,而在 Chrome Safari Opera 中则会忽略非法的事件监听器,继续执行其他的事件监听器。
事件对象
在ie中,事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发的,还是其他事件, 都会更新window.event 对象。 所以在代码中,只要轻松调用 window.event 就可以轻松获取 事件对象, 再 event.srcElement 就可以取得触发事件的元素进行进一步处理。
对于标准的 DOM 处理来说, 事件对象却不是全局对象,一般情况下,是现场发生,现场使用,把事件对象自动传递给对应的事件处理函数。 在代码中,函数的第一个参数就是事件对象了。
为了解决兼容性问题,通常在代码中如下处理:
function handler(e){
e = e || window.event;
}
需要注意的是,使用 进行事件注册,标准方式下却不能在事件处理方法中取得事件对象。
原因是 onclick="foo()" 就是直接执行了, foo() 函数,没有任何参数传递给 foo 函数。
有两个办法解决这个问题。
第一,将注册的方法修改为 ,注意,这里的 event 不是形参,而是实参,必须名为 event。这样 foo 函数就可以得到事件参数了。
第二,不修改注册的代码,在事件处理方法上进行处理。关键在于此时实际上存在事件对象,只不过没有传递给 foo 函数罢了,我们可以找到调用 foo 函数的那个函数,当然这是一个系统函数,没有关系,通过 foo.caller 可以取得当前调用 foo 函数的函数,这个函数的第一个参数就是事件对象,所以,我们可以这样取得这个事件对象了。foo.caller.arguments[0]。
注意:
只有在使用 attachEvent 方法注册事件监听器的时候,IE 才支持使用事件监听器传入的第一个参数作为事件对象的方式;
Chrome Safari Opera 两种获取事件对象的方式都支持;
Firefox 只支持获取事件对象的标准方式。
事件对象的属性
IE 对事件对象的标准属性和方法支持有限,针对大部分属性和方法,IE 都提供了一套替代非标准的替代方案; 而 Firefox Chrome Safari Opera 除了全面支持事件对象的标准属性和方法外,还在不同程度上支持了 IE 提供的非标准替代方案。
使用特性判断使用与标准对应的非标准方法及属性
target srcElement
preventDefault() returnValue
stopPropagation() cancelBubble
relatedTarget fromElement toElement
例如:
getEvent: function (event) {
return event ? event : window.event;
},
getTarget: function (event) {
return event.target || event.srcElement;
},
preventDefault: function (event) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
stopPropagation: function (event) {
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
}
参考资料:

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

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 !

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)

Une brève introduction à la programmation GUI python L'interface graphique (Graphical User Interface, interface utilisateur graphique) est un moyen qui permet aux utilisateurs d'interagir graphiquement avec les ordinateurs. La programmation GUI fait référence à l'utilisation de langages de programmation pour créer des interfaces utilisateur graphiques. Python est un langage de programmation populaire qui fournit une riche bibliothèque GUI, ce qui rend la programmation GUI Python très simple. Introduction à la bibliothèque GUI Python Il existe de nombreuses bibliothèques GUI en Python, dont les plus couramment utilisées sont : Tkinter : Tkinter est la bibliothèque GUI fournie avec la bibliothèque standard Python. Elle est simple et facile à utiliser, mais ses fonctions sont limitées. PyQt : PyQt est une bibliothèque graphique multiplateforme dotée de fonctions puissantes.

Introduction CircularQueue est une amélioration des files d'attente linéaires, qui a été introduite pour résoudre le problème du gaspillage de mémoire dans les files d'attente linéaires. Les files d'attente circulaires utilisent le principe FIFO pour y insérer et supprimer des éléments. Dans ce tutoriel, nous aborderons le fonctionnement d'une file d'attente circulaire et comment la gérer. Qu'est-ce qu'une file d'attente circulaire ? La file d'attente circulaire est un autre type de file d'attente dans la structure de données où le front-end et le back-end sont connectés l'un à l'autre. Il est également connu sous le nom de tampon circulaire. Il fonctionne de la même manière qu’une file d’attente linéaire, alors pourquoi devons-nous introduire une nouvelle file d’attente dans la structure des données ? Lors de l'utilisation d'une file d'attente linéaire, lorsque la file d'attente atteint sa limite maximale, il peut y avoir de l'espace mémoire avant le pointeur de queue. Cela entraîne une perte de mémoire et un bon algorithme devrait être capable d’utiliser pleinement les ressources. Afin de résoudre le gaspillage de mémoire

Bibliothèque de traitement d'événements en PHP8.0 : Événement Avec le développement continu d'Internet, PHP, en tant que langage de programmation back-end populaire, est largement utilisé dans le développement de diverses applications Web. Dans ce processus, le mécanisme événementiel est devenu un élément très important. La bibliothèque de traitement d'événements Event en PHP8.0 nous fournira une méthode de traitement d'événements plus efficace et plus flexible. Qu'est-ce que la gestion des événements ? La gestion des événements est un concept très important dans le développement d'applications Web. Les événements peuvent être n'importe quel type de ligne utilisateur

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

Dans Vue, il y a souvent des composants imbriqués et les événements doivent être transmis entre ces composants imbriqués. Dans Vue, l'événement $emit est utilisé pour la communication d'événements entre les composants. Cependant, dans certains cas, nous devons transmettre le gestionnaire d'événements d'un composant parent à un composant enfant imbriqué. Dans ce cas, l'utilisation de l'événement $emit n'est pas appropriée. À ce stade, vous pouvez utiliser les $listeners fournis par Vue pour transmettre la fonction de traitement des événements. Alors, que sont les $auditeurs ?

Analyse de la directive v-on dans Vue : Comment gérer les événements de soumission de formulaire Dans Vue.js, la directive v-on est utilisée pour lier les écouteurs d'événements et peut capturer et traiter divers événements DOM. Parmi eux, le traitement des événements de soumission de formulaire est l'une des opérations courantes dans Vue. Cet article explique comment utiliser la directive v-on pour gérer les événements de soumission de formulaire et fournit des exemples de code spécifiques. Tout d'abord, il est nécessaire de préciser que l'événement de soumission de formulaire dans Vue fait référence à l'événement déclenché lorsque l'utilisateur clique sur le bouton de soumission ou appuie sur la touche Entrée. Dans Vue, vous pouvez passer

Étude approfondie de l'implémentation du code clé de PHP et Vue dans la fonction de carte cérébrale Résumé : Cet article explorera en profondeur l'implémentation du code clé de PHP et Vue dans la fonction de carte cérébrale. La cartographie cérébrale est un outil graphique couramment utilisé pour afficher les structures et les relations de pensée. Il est largement utilisé dans des domaines tels que la planification de projets, la gestion des connaissances et l'organisation de l'information. En acquérant les connaissances pertinentes de PHP et Vue, nous pouvons implémenter une application de cartographie cérébrale simple mais puissante. Comprendre PHPPHP est un langage de script côté serveur couramment utilisé. Il est facile à apprendre et hautement évolutif

Scénarios d'application du bouillonnement d'événements et types d'événements qu'il prend en charge. Le bouillonnement d'événements signifie que lorsqu'un événement sur un élément est déclenché, l'événement sera transmis à l'élément parent de l'élément, puis à l'élément ancêtre de l'élément jusqu'à ce qu'il soit transmis. est transmis au nœud racine du document. Il s'agit d'un mécanisme important du modèle d'événement et propose un large éventail de scénarios d'application. Cet article présentera les scénarios d'application du bouillonnement d'événements et explorera les types d'événements qu'il prend en charge. 1. Scénarios d'application La diffusion d'événements propose un large éventail de scénarios d'application dans le développement Web. Voici plusieurs scénarios d'application courants. validation du formulaire dans le formulaire
