Ajout d'écouteurs d'événement sur les éléments - Javascript
Est-il possible pour moi d'écouter pour onblur ou onclick événements en javascript à partir d'une fonction onload? au lieu de le faire dans l'élément lui-même.
<input type="button" id="buttonid" value="click" onclick="func()">
pour devenir quelque chose comme
function onload() {
var button = document.getElementById("buttonid");
button.addEventListener("onclick", function() { alert("alert");});
}
MODIFIER
<html>
<head>
<script>
function onload() {
var button = document.getElementById("buttonid");
if(button.addEventListener){
button.addEventListener("click", function() { alert("alert");});
} else {
button.attachEvent("click", function() { alert("alert");});
};
};
window.onload = onload;
</script>
</head>
<body>
<input type="button" id="buttonid" value="click">
</body>
</html>
Mise à JOUR
<script type="text/javascript">
function on_load() {
var button = document.getElementById("buttonid");
if(button.addEventListener){
button.addEventListener("click", function() { alert("alert");});
} else {
button.attachEvent("click", function() { alert("alert");});
};
};
window.onload = on_load();
</script>
source d'informationauteur simplified.
Vous devez vous connecter pour publier un commentaire.
La façon dont vous le faites est très bien, mais votre écouteur d'événement pour l'
click
événement devrait être comme ceci:Avis, le
click
événement doit être fixé avec des"click"
pas"onclick"
.Vous pouvez aussi essayer de faire cela à l'ancienne:
Mise à jour de 1
Vous devez également surveiller pour IE < 9, parce que ceux Vs utilisation
attachEvent()
. Joignez l'événement comme celui-là, donc, il travaillera avec des dinosaures navigateurs:Mise à jour 2
Basé sur votre montage, ce
devrait fonctionnerfonctionne très bien.S'il vous plaît, ne pas utiliser de
window.onload = on_load();
cela permettra d'éviter tous les autresonload
des écouteurs d'événement de licenciement, ou vous risquer pour votre écouteur d'événement pour obtenir écrasé. Pensez à attacher leonload
événement de la façon dont je suggère ci-dessus.Une meilleure façon d'ajouter dynamiquement des gestionnaires d'événement serait d'utiliser une bibliothèque JavaScript comme jQuery, parce qu'il va abstraire de n'importe quel navigateur détails spécifiques.
de poursuivre ma conversation dans la section des commentaires...
@simplifié, essayer de mettre cela dans le < head > de votre page
et voir ce qui se passe. aussi, merci de nous conseiller sur le navigateur que vous utilisez.
https://developer.mozilla.org/en/DOM/element.addEventListener