Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1429 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Fusion de 2 scripts pour une fonction précise

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fusion de 2 scripts pour une fonction précise

n°1590681
odo91600
Posté le 24-07-2007 à 11:58:22  profilanswer
 

Bonjour,
 
Voici 2 scripts qui fonctionnent indépendamment l'un de l'autre; je cherche à les associer.
Le premier script permet de récupérer une touche du clavier (au choix) et le deuxième script permet de mettre en surbrillance une ligne du tableau ci-dessous au passage de la souris.
 
Mon but serait que chaque ligne du tableau se mettent et restent en surbrillance une par une à chaque fois que j'appuie sur une touche du clavier.  
 
 

Code :
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  3. <STYLE>
  4.   .tabnormal{background-color:white; color:navy; font-weight:bold}
  5.   .tabover{background-color:green; color:white; font-weight:bold}
  6. </STYLE>
  7. <title>Document sans nom</title>
  8. </head>
  9. <body>
  10. <p>&nbsp;</p>
  11. <script language="JavaScript">
  12. document.onkeypress = checkKeycode;
  13. function checkKeycode(event) {
  14. var key;
  15. if (event.keyCode) key = event.keyCode;
  16. else key = event.which;
  17. alert("Vous venez de frapper la lettre : " + key);
  18. if(key == 32) { // 13 = enter     32 = spacebarre
  19.   parent.window.location = './identz.html';
  20. }
  21. }
  22. // var lettre= String.fromCharCode(event.keyCode);
  23. </script>
  24. <table width="365" border="1" cellpadding="3" cellspacing="0" style="border-width:1px;border-style:solid;border-color:navy">
  25.   <tr class="tabnormal" onmouseover="this.className='tabover'" onmouseout="this.className='tabnormal'">
  26.     <td width="264"> Ligne 1</td>
  27.   </tr>  <tr class="tabnormal" onmouseover="this.className='tabover'" onmouseout="this.className='tabnormal'">
  28.     <td> Ligne 2</td>  </tr>
  29.   <tr class="tabnormal" onmouseover="this.className='tabover'" onmouseout="this.className='tabnormal'">
  30.     <td> Ligne 3</td>  </tr>
  31. </table>
  32. <p>&nbsp;</p>
  33. </body>


 
 
Il faut donc que j'enlève chaque "onmouseover" et "onmouseout" mais comment les remplacer ?  
Il y a certainement une solution mais je débute en JavaScript.
 
Merci
odo

mood
Publicité
Posté le 24-07-2007 à 11:58:22  profilanswer
 

n°1590686
odo91600
Posté le 24-07-2007 à 12:00:56  profilanswer
 

erratum : Je sais que la ligne 24 est incohérente; puisque c'est certainement à cet endroit qu'il faut modifier la couleur d'une ligne de tableau; mais comment ?  :)

n°1590693
Shinuza
This is unexecpected
Posté le 24-07-2007 à 12:03:52  profilanswer
 

Oula, typiquement pour un tableau faut séparer les couches.
 
Tu vires les triggers d'event dans le code, et tu passes par une fonction style addEvent() @ le site Dean Edwards.
 
Après t'auras un truc genre (je vais pas te taper le code, juste la logique)
 
-Tu récupères les lignes de ton tableau;
-A chaque frappe de touche tu colores, par exemple la ligne 0 et t'avance le pointer d'un point.
-Encore une touche ligne 1, ect...


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1590828
odo91600
Posté le 24-07-2007 à 14:29:56  profilanswer
 

Euh, j'ai pas tout compris, (voir moins que ça).  
je continue à comprendre en cherchant sous google "triggers ", "addEvent()".
 
y a des pointer en javascript ?
 
Merci
 
odo

n°1590869
Shinuza
This is unexecpected
Posté le 24-07-2007 à 14:57:40  profilanswer
 

Non, pas au sens ou tu l'entends, c'est plus dans l'expression :D
La méthode getElementsByTagName renvoie un pseudo-tableau, du coup tu peux le parcourir en faisant avancer ton "pointer" d'un cran à chaque frappe de touche.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1590981
odo91600
Posté le 24-07-2007 à 16:30:15  profilanswer
 

Décidement, je suis trop novice en javascript pour faire ça.
j'ai regardé coté rollover distant. mais ça ne se fait pas au clavier non plus.

n°1591096
mvdp
Posté le 24-07-2007 à 22:19:50  profilanswer
 

Shinuza a raison.
 
Mais avant d'appeler la grande cavalerie, gardons la logique.
Si on clique sur la touche ‘espace' tu veux que la ligne reste en surbrillance.
Problème: ou est donc cette ligne?
 
Si on récupère l'endroit ou se trouve cette ligne, le tour est joué!
Je propose de changer ton mouseover.
On récupère à chaque fois sa valeur dans le variable ou.
 
On profite du fait que le mouseover précède toujours le mouseout.
 
Ensuite, si le souris sort: on teste s'il doit devenir normal ou rester fixe

Code :
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  3. <STYLE>
  4. .tabnormal{background-color:white; color:navy; font-weight:bold}
  5. .tabover{background-color:green; color:white; font-weight:bold}
  6. .tabfixe{background-color:green; color:white; font-weight:bold} /* ajouté pour faire
  7. une difference avec tabover*/
  8. </STYLE>
  9. <script language="JavaScript">
  10. var ou=""// faut déclarer <ou> pour qu'il soit valable partout
  11.     document.onkeypress = checkKeycode;
  12.     function checkKeycode(event) {
  13.     var key;
  14.     if (event.keyCode) key = event.keyCode;
  15.     else key = event.which;
  16.     alert("Vous venez de frapper la lettre : " + key );
  17.      if(key == 32) { // 13 = enter     32 = spacebarre
  18.      ou.className="tabfixe"} // si on change avec barre d'espace, ca devient fixe
  19.      }
  20. function garder(){
  21. if ( ou.className!="tabfixe" )  // si ce n'est pas tabfixe
  22. {ou.className="tabnormal"} // on revient à l'affichage normal
  23. }
  24. function oudonc(liste) {
  25. ou=liste // on récupère l'endroit de la ligne
  26. if (ou.className!='tabfixe')  // si ce n'est pas tabfixe
  27. {ou.className='tabover'}  // on change en tabover
  28. }
  29.       </script>
  30.       <title>Document sans nom</title>
  31.       </head>
  32.       <body>
  33.       <p>&nbsp;</p>
  34.       <table width="365" border="1" cellpadding="3" cellspacing="0" style="border-width:1px;border-style:solid;border-color:navy">
  35.       <tr  class="tabnormal" onmouseover="oudonc(this)"  onmouseout="garder()"  >
  36.       <td  name="L1" width="264"> Ligne 1</td>
  37.       </tr>  <tr  name="L2" class="tabnormal" onmouseover="oudonc(this)"  onmouseout="garder()"  >
  38.       <td> Ligne 2</td>  </tr>
  39.       <tr  name="L3" class="tabnormal" onmouseover="oudonc(this)"  onmouseout="garder()"  >
  40.        <td> Ligne 3</td>  </tr>
  41.       </table>
  42.       </body>
  43.       </html>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Fusion de 2 scripts pour une fonction précise

 

Sujets relatifs
Modification d'une fonction pour selectionner une plage de cellulepetit souci avec une fonction simple
Excel macro pour appliquer fonction sur une colonneProblème avec fonction IF NOT EXIST
VBA [Résolu] Passer une fonction en paramètreappel d'une fonction (execution) qui est definie par un char[]
Appeler une fonction C à partir d'un shell[fonction] pour convertir les accents et choses non ascii ?
[C] Fonction niveau debutant[Excel] extraire une valeur d'un tableau en fonction de 2 index
Plus de sujets relatifs à : Fusion de 2 scripts pour une fonction précise


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR