Programme d'écoute d'événements HTML DOM JavaScript
- Page précédente Événements DOM
- Page suivante Navigation DOM
Méthode addEventListener()
Exemple
Ajoutez un gestionnaire d'événement qui déclenche lorsque l'utilisateur clique sur le bouton :
document.getElementById("myBtn").addEventListener("click", displayDate);
addEventListener()
La méthode attribue un gestionnaire d'événement spécifique à un élément.
addEventListener()
La méthode ajoute un gestionnaire d'événement à un élément sans le remplacer.
Vous pouvez ajouter plusieurs gestionnaires d'événements à un élément.
Vous pouvez ajouter plusieurs gestionnaires d'événements du même type à un élément, par exemple deux événements "click".
Vous pouvez ajouter des gestionnaires d'événements à n'importe quel objet DOM, pas seulement aux éléments HTML, par exemple à l'objet window.
addEventListener()
La méthode nous permet de contrôler plus facilement la manière dont les événements réagissent à la propagation.
Lorsque vous utilisez addEventListener()
La méthode, JavaScript et les balises HTML sont séparés pour une meilleure lisibilité ; même sans contrôler les balises HTML, vous pouvez ajouter des gestionnaires d'événements.
Vous pouvez utiliser removeEventListener()
La méthode permet de supprimer facilement un gestionnaire d'événement.
Syntaxe
element.addEventListener(event, function, useCapture);
Le premier paramètre est le type de l'événement (par exemple "click" ou "mousedown").
Le deuxième paramètre est la fonction à appeler lorsque l'événement se produit.
Le troisième paramètre est une valeur booléenne qui spécifie si l'événement doit être propagé ou capturé. Ce paramètre est optionnel.
Attention :Ne pas utiliser le préfixe "on" pour les événements ; utilisez "click" à la place de "onclick".
Ajouter un gestionnaire d'événement à un élément
Exemple
Afficher "Hello World!" lorsque l'utilisateur clique sur un élément :
element.addEventListener("click", function(){ alert("Hello World!"); });
Vous pouvez également appeler une fonction "nommée" externe :
Exemple
Afficher "Hello World!" lorsque l'utilisateur clique sur un élément :
element.addEventListener("click", myFunction); function myFunction() { alert ("Hello World!"); }
Ajouter plusieurs gestionnaires d'événements au même élément
addEventListener()
La méthode permet d'ajouter plusieurs événements au même élément sans les couvrir :
Exemple
element.addEventListener("click", myFunction); element.addEventListener("click", mySecondFunction);
Vous pouvez ajouter différents types d'événements au même élément :
Exemple
element.addEventListener("mouseover", myFunction); element.addEventListener("click", mySecondFunction); element.addEventListener("mouseout", myThirdFunction);
Ajouter un gestionnaire d'événement au objet Window
addEventListener()
Permet de lier un gestionnaire d'événement à n'importe quel objet HTML DOM, comme un élément HTML, un objet HTML, l'objet window ou tout autre objet supportant les événements, comme l'objet XMLHttpRequest.
Exemple
Ajouter un gestionnaire d'événement qui est déclenché lorsque l'utilisateur ajuste la taille de la fenêtre :
window.addEventListener("resize", function(){ document.getElementById("demo").innerHTML = sometext; });
Passer des paramètres
Lorsque vous passez des valeurs de paramètres, utilisez une fonction anonyme en tant que paramètre pour appeler la fonction spécifiée :
Exemple
element.addEventListener("click", function(){ myFunction(p1, p2); });
Propagation par bulle ou capture d'événement ?
Dans l'HTML DOM, il y a deux méthodes de propagation des événements : la bulle et la capture.
La propagation des événements est une méthode pour définir l'ordre des éléments lorsque se produit un événement. Si <div> contient un <p>, et l'utilisateur clique sur l'élément <p>, quel événement "click" doit être traité en premier ?
Dans la phase de bulle, l'élément le plus interne est traité en premier, puis les éléments plus externes : d'abord traiter l'événement de clic de l'élément <p>, puis l'événement de clic de l'élément <div>.
Dans la phase de capture, l'élément le plus externe est traité en premier, puis les éléments plus internes : d'abord traiter l'événement de clic de l'élément <div>, puis l'événement de clic de l'élément <p>.
Dans la méthode addEventListener(), vous pouvez définir le type de propagation en utilisant le paramètre "useCapture" :
addEventListener(event, function, useCapture);
la valeur par défaut est false
l'événement est propagé par bulle. Si cette valeur est définie sur true
si ce paramètre est mis à
Exemple
document.getElementById("myP").addEventListener("click", myFunction, true); document.getElementById("myDiv").addEventListener("click", myFunction, true);
par la méthode removeEventListener()
removeEventListener()
La méthode supprime les gestionnaires d'événements qui ont été addEventListener()
Programmeur d'événements attaché à la méthode :
Exemple
element.removeEventListener("mousemove", myFunction);
Support du navigateur
Les nombres dans le tableau indiquent la première version de navigateur qui prend en charge ces méthodes pleinement.
Méthode | |||||
addEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
removeEventListener() | 1.0 | 9.0 | 1.0 | 1.0 | 7.0 |
Remarque :IE 8, Opera 6.0 et les versions antérieures ne prennent pas en charge addEventListener()
et removeEventListener()
Méthode. Cependant, pour ces versions spéciales de navigateurs, vous pouvez utiliser attachEvent()}
Méthode d'ajout de gestionnaires d'événements à l'élément, et de detachEvent()
Méthode de suppression :
element.attachEvent(event, function); element.detachEvent(event, function);
Exemple
Solution de navigation croisée :
var x = document.getElementById("myBtn"); if (x.addEventListener) { // Pour les navigateurs populaires, à l'exception d'IE 8 et versions antérieures x.addEventListener("click", myFunction); } else if (x.attachEvent) { // Pour IE 8 et versions antérieures x.attachEvent("onclick", myFunction); }
Manuel de référence de l'objet événement DOM HTML
Pour obtenir une liste complète des événements DOM HTML, veuillez visiter notre site complet Manuel de référence de l'objet événement DOM HTML.
- Page précédente Événements DOM
- Page suivante Navigation DOM