Il existe plusieurs façons de joindre un gestionnaire de clic sans utiliser une bibliothèque.. La première consiste à attribuer une fonction à la propriété on[eventname]
d'un élément:
element.onclick = function (eventObj) {
alert("textContent" in this ? this.textContent : this.innerText)
}
Vous pouvez également attribuer une chaîne de code à évaluer, mais il est pas aussi jolie et généralement évité. Une autre façon est d'utiliser la norme w3c addEventListener
:
element.addEventListener("click", function (eventObj) {
alert("textContent" in this ? this.textContent : this.innerText)
}, false);
Ce n'est pas pris en charge par les versions actuelles de IE qui nécessitent attachEvent
place:
element.attachEvent("onclick", function() {
alert(event.srcElement.innerText);
});
IE a des problèmes d'application de la fonction de l'élément qui a déclenché la événement, donc this
ne pointera pas correctement sur cet élément avec attachEvent
.
La première méthode element.onclick
est utile pour la compatibilité x-navigateur et le codage rapide, mais vous ne pouvez affecter qu'une seule fonction à la propriété. En utilisant attachEvent
et addEventListener
vous pouvez attacher autant de fonctions que vous le souhaitez et ils tireront tous correctement. Vous pouvez créer un navigateur semi-équivalent en effectuant des vérifications de fonctionnalités simples dans votre code:
if ("addEventListener" in element)
element.addEventListener("click", function (eventObj) {
alert("textContent" in this ? this.textContent : this.innerText)
}, false);
else
element.attachEvent("onclick", function() {
alert(event.srcElement.innerText);
});
Battez-moi en quelques secondes :) –
J'adore les courses de dactylographie simple-JS-question! – bobince
@Tim: Ils disent que les grands esprits se ressemblent ;-) –