Maison > interface Web > js tutoriel > Analyse de addEventListener() et removeEventListener() en js

Analyse de addEventListener() et removeEventListener() en js

零下一度
Libérer: 2017-04-22 10:05:15
original
2189 Les gens l'ont consulté

Cet article présente principalement addEventListener() et removeEventListener() en détail, qui sont utilisés pour gérer les opérations de spécification et de suppression des gestionnaires d'événements. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

addEventListener. () et removeEventListener() sont utilisés pour gérer la spécification et la suppression des opérations du gestionnaire d'événements.
Tous les nœuds DOM contiennent ces deux méthodes, et ils acceptent tous deux 3 paramètres : le nom de l'événement à traiter, la fonction de gestionnaire d'événement et une valeur booléenne.

Le dernier paramètre booléen est vrai, ce qui signifie que le gestionnaire d'événements est appelé dans la phase de capture
s'il est faux (faux par défaut), cela signifie que le gestionnaire d'événements est appelé dans la phase de capture ; phase bouillonnante.

addEventListener a trois paramètres au total. La syntaxe est la suivante :
element.addEventListener(type, Listener, useCapture)

Ce qui suit est le détail. explication :
1. L'élément est l'objet auquel la fonction est liée.
2. Type est le nom de l'événement. Il convient de noter que "onclick" doit être remplacé par "click" et "onblur" doit être remplacé par "blur", ce qui signifie que le nom de l'événement ne doit pas contenir "on". .
3. L'écouteur est bien sûr une fonction liée. N'oubliez pas de ne pas suivre les parenthèses.
4. Le dernier paramètre est une valeur booléenne, indiquant la séquence de réponse de l'événement. utiliserCapture ).

Pour ajouter un gestionnaire d'événements pour l'événement de clic sur un bouton, vous pouvez utiliser le code suivant :


var btn = document.getElementById("myBtn");
btn.addEventListener("click", function () {
  alert(this.id);
}, false);
Copier après la connexion

Ajouter un gestionnaire d'événements en utilisant le niveau DOM2 méthode Le principal avantage est que vous pouvez ajouter plusieurs gestionnaires d'événements. Prenons l'exemple suivant :


var btn = document.getElementById("myBtn");

btn.addEventListener("click", function () {
  alert(this.id);
}, false);  
btn.addEventListener("click", function () {
  alert("Hello World");
}, false);
Copier après la connexion

Les gestionnaires d'événements ajoutés via addEventListener() ne peuvent être supprimés qu'en utilisant removeEventListener();

move Les paramètres transmis lors de la division sont les mêmes que ceux utilisés lors de l’ajout du gestionnaire.
Cela signifie également que les fonctions anonymes ajoutées via addEventListener() ne peuvent pas être supprimées, comme le montre l'exemple suivant :


var btn = document.getElementById("myBtn");

btn.addEventListener("click", function () {
   alert(this.id);
}, false);
btn.removeEventListener("click", function () { //无效!
   alert(this.id);
}, false);
Copier après la connexion

Dans dans cet exemple, j'ajoute un gestionnaire d'événements en utilisant addEventListener().
Bien que l'appel de removeEventListener semble utiliser les mêmes paramètres
, en fait, le deuxième paramètre est une fonction complètement différente de celle passée dans addEventListener().
La fonction de gestionnaire d'événements transmise dans removeEventListener() doit être la même que celle transmise dans addEventListener(),

Comme le montre l'exemple suivant :


var btn = document.getElementById("myBtn");
var handler = function () {
   alert(this.id);
};
btn.addEventListener("click", handler, false);
btn.removeEventListener("click", handler, false); //有效!
Copier après la connexion

Il n'y a aucun problème avec cet exemple réécrit car la même fonction est utilisée dans addEventListener() et removeEventListener().
Le résultat expérimental est que lorsque l'utilisateur clique sur le bouton, "J'ai été cliqué !" sera affiché à chaque fois, indiquant que la fonction removeEventListener() ne fonctionne pas.

Tirez des conclusions en recherchant des informations. Lors de l'utilisation de la fonction removeEventListener(), la fonction de gestionnaire doit être la même que la fonction de gestionnaire dans addEventListener().

Le code écrit ci-dessus est donc faux. Le code corrigé devrait être le suivant :


//addEventListener()和removeEventListener()中handler函数必须相同,移除事件函数才有效。
function myhandler(){
  console.log("I have been clicked!");
  document.getElementById('info').removeEventListener('click',myhandler,false);
}
var target=document.getElementById('info');
target.addEventListener("click", myhandler, false);
target.removeEventListener("click", myhandler, false); //有效!
Copier après la connexion

Les étudiants qui ont besoin d'apprendre js, veuillez faire attention au site Web php chinois tutoriel vidéo js, de nombreux js didacticiels vidéo en ligne C'est gratuit à regarder !

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal