
Envoyé par
david252
dois-je placer le "onClick" dans la page .php ou bien dans le mon_script.js ?

Envoyé par
Sharcoux
c'est aussi sur ton élément html que tu dois ajouter le onclick. Si ton html est dans ton fichier php, c'est bien là que tu dois le mettre
Tant qu'à apprendre les bases, autant faire les choses bien 
Pour placer des événements sur des éléments de ta page, 3 solutions :
1) directement dans le HTML, par exemple :
<div id="divMachin" onclick="alert('rouge');">bla bla</div>
>>> problème : c'est carrément à contre-courant du principe de séparation "contenus/mise en forme/comportements", ça peut poser des soucis de compatibilité entre navigateurs, et c'est une galère à maintenir 
2) dans ton code JS, en utilisant les propriétés des éléments DOM :
a) soit entre balises script sur la page (inconvénients : quasiment les mêmes que la solution 1)
b) soit dans un fichier JS à part appelé depuis le head de la page.
En tout cas dans ces deux cas (a et b), tu auras quelque chose comme :
1 2 3 4
| var elem = document.getElementById("idDeTonElement");
elem.onclick = function() {
alert("à la bombe");
}; |
Mais ce n'est pas idéal non plus dans certains cas de figure. Notamment, si d'autres événements ont été ajoutés de cette manière à l'élément sur le même déclencheur, il y aura écrasement de la première fonction par la seconde. Ca se produit le plus souvent avec des fonctions appelées au démarrage sur window.onload par exemple...
3) avec de vrais gestionnaires d'événement 
IE :
1 2 3 4 5 6
| function traitementClic(e) {
// ici, le code à exécuter quand l'événement se produit.
// "e" est une référence à l'objet (de type Event) correspondant
}
var elem = document.getElementById("idDeTonElement");
elem.attachEvent("onclick", traitementClic); |
FF et les autres :
1 2 3 4 5 6
| function traitementClic(e) {
// ici, le code à exécuter quand l'événement se produit.
// "e" est une référence à l'objet (de type Event) correspondant
}
var elem = document.getElementById("idDeTonElement");
elem.addEventListener("click", traitementClic, false); |
version cross-browser :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function traitementClic(e) {
// ici, le code à exécuter quand l'événement se produit.
// "e" est une référence à l'objet (de type Event) correspondant
}
function addEvent(cible, condition, effet) {
if (cible.addEventListener) {
cible.addEventListener(condition, effet, false);
}
else if (cible.attachEvent) {
cible.attachEvent("on" + condition, effet);
}
}
var elem = document.getElementById("idDeTonElement");
addEvent(elem, "click", traitementClic); |
Enfin, grosso modo, hein ^^
Partager