Evènement OnmouseDown/Up: bordure Inset/Outset dans un *.js
Alors voilà j'utilise dans mes page des évenement javasript pour
animer les bordure d'un tableau au passage de la souris :) ...
Code:
1 2 3
| <td
onmousedown="this.style.borderStyle='inset'"
onmouseup="this.style.borderStyle='outset'"> |
Mais j'aimerais inclure tout çà dans un fichier externe *.js
et utiliser id="bouton" pour appeler la fonction :o ...
problème je ne sais pas du tout comment réécrire ça
en script javascript :oops: !
Code:
1 2 3 4 5
| function bouton(id)
{
onmousedown.style.borderStyle='inset';
onmouseup.style.borderStyle='outset';
} |
Quelqu'un pourrait m'aider ?
Merci d'avance :) !
Re: Evenement OnmouseDown/Up: bordure Inset/Outset dans un *
Citation:
Envoyé par Lareine
et utiliser id="bouton" pour appeler la fonction :o ...
Tu peux préciser ce que tu cherches à faire? Tu veux que toutes les cases ayant id="bouton" aient le même comportement que ci-dessus? En utilisant un fichier .js externe? C'est bien ça?
Re: Evenement OnmouseDown/Up: bordure Inset/Outset dans un *
Citation:
Envoyé par Lareine
et utiliser id="bouton" pour appeler la fonction :o ...
Ben c'est pas possible :D
Non, je rigole ^^
Il y a effectivement une partie qui n'est pas possible, c'est d'affecter un même id a deux élements HTML. Par définition un id doit être unique.
Après, tu peux trouver d'autres solutions.
Par exemple la affecter un attribut class (ou tout autre attribut mais pas id).
Ensuite, il te faudra retrouver tous tes élements (a coup de getElementsByTagName('td')) et vérifier td par td si tu dois lui appliquer le style onmousedown/onmouseup ci-dessus (en fonction de l'attribut défini ci dessus).
Tu dois faire une fonction qui fait tout ça dans ton fichier .js et l'appeller au chargement de la page, soit en mettant ça dans le onload du body soit en faisant une commande du style:
Code:
1 2 3
|
window.attachEvent('onload',maFonctionPourAppliquerLesStyles); //IE
window.addEventListener('load',maFonctionPourAppliquerLesStyles,false); //FFx et W3C |
Bonne chance :)
Onmouse* Inset Outset dans un *.js: La dernière boucle :) !
Citation:
Envoyé par SpaceFrog
function bordure(jsclass)
{
jsclassElements=document.getElementsByTagName('td')
for (i=0;i<jsclassElements.length;i++){
if(jsclassElements[i].className==jsclass){
jsclassElements[i].setAttribute("onmouseover","this.style.borderStyle='inset';")
jsclassElements[i].onmouseover=function(){this.style.borderStyle='inset';}
jsclassElements[i].setAttribute("onmouseout","this.style.borderStyle='outset';")
jsclassElements[i].onmouseout=function(){this.style.borderStyle='outset';}
}
}
Ça ne fonctionais pas, comme il manquait un } :o !
Sinan je préfère utiliser, onmousedown et onmouseup:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function bordure(bouton)
{
boutonElements=document.getElementsByTagName('td','div')
for (b=0;b<boutonElements.length;b++){
if(boutonElements[b].className==bouton){
boutonElements[b].setAttribute("onmousedown","this.style.borderStyle='inset';")
boutonElements[b].onmousedown=function(){this.style.borderStyle='inset';}
boutonElements[b].setAttribute("onmouseup","this.style.borderStyle='outset';")
boutonElements[b].onmouseup=function(){this.style.borderStyle='outset';}
}
}
} |
Ça fonctione Impec :P ...
Merci Grenouille Spacial :bravo: !
Sinan j'ai essayée de faire fonctionner en remplaçant:
Code:
<body onload="bordure('bouton');" >
dans le fichier externe. J'ai essayé:
Code:
window.onload = bordure;
et
Code:
1 2
| window.attachEvent('onload',bordure); //IE
window.addEventListener('load',bordure,false); //FFx et W3C |
Mais ça ne marche pas :? !?
Y'aurrais t'il une impossibilité avec les onload en *.js,
dans les td ?
Re: Onmouse* Inset Outset dans un *.js: La dernière boucle :
Citation:
Envoyé par Lareine
Y'aurrais t'il une impossibilité avec les onload en *.js,
dans les td ?
Non, il n'y aucune impossiblité, simplement, il faut passer un argument à ta fonction...
Quelque chose du genre:
Code:
1 2
|
window.onload = function(){bordure('bouton')}; |
ou
Code:
1 2 3
|
window.attachEvent('onload', function(){bordure('bouton')}); //IE
window.addEventListener('load', function(){bordure('bouton')},false); //FFx et W3C |
Ca devrait le faire :wink: