Je sais qu'en utilisant jQuery, vous pouvez faire $('element').click();
pour capturer l'événement click d'un élément HTML, mais comment faire cela avec Javascript simple?
document.getElementById('element').onclick = function(e){
alert('click');
}
En ajoutant un écouteur d'événements ou en définissant onclick
handler d'un élément:
var el = document.getElementById("myelement");
el.addEventListener('click', function() {
alert("Clicked");
});
// ... or ...
el.onclick = function() {
alert("Clicked");
}
Notez que le style d'écoute pair permet d'ajouter plusieurs écouteurs alors que le style du gestionnaire de rappel est exclusif (il ne peut y en avoir qu'un).
Si vous devez ajouter ces gestionnaires à plusieurs éléments, vous devez les acquérir comme il convient et les ajouter à chacun séparément.
Je crée généralement une sorte de gestionnaire d'événement global, très puissant, vous pouvez capturer className, de l'événement "types" nodeTypes, vous l'appelez, j'espère que les gens trouveront cela utile
document.onclick = eventRef
function eventRef(evt) {
var han;
evt || (evt = window.event);
if (evt) {
var elem = evt.target ? han = evt.target : evt.srcElement && (han = evt.srcElement);
// evt.type could be, mouseup, mousedown...
// elem.id is the id or the element
// elem.className is the class name of the element
// you could nest expression, use substrings to extract part of a className
if (evt.type=="click" && elem.id == "gotit" || elem.className == "someClassName") {
alert(elem.id);
}
}
}
Je recommanderais d'utiliser addEventListener
au lieu d'affecter directement la fonction de gestionnaire.
var div = document.getElementById('test');
div.addEventListener('click', function(){
console.log('CLICKED');
});
Il y a plusieurs raisons pour lesquelles je vais nommer celles que je trouve les plus importantes:
addEventListener
- votre code échouerait au lieu d'assigner discrètement la fonction onclick
à un objetonclick
- quelque chose qui pourrait s'avérer limitantMerci à Vanilla js
document.addEventListener('click', function (event) {
// If the clicked element doesn't have the right selector, bail
if (!event.target.matches('input')) return;
// Don't follow the link
event.preventDefault();
// Log the clicked element in the console
console.log(event.target);
}, false);
Cela montre également quel élément est c
Voici un article intéressant à ce sujet, j'ai utilisé la même approche quelques fois, en gros, vous ajoutez le gestionnaire d'événements à window
. http://mislav.uniqpath.com/js/handling-events-on-elements/