mettre en "surbrillance" par validation clavier

mettre en "surbrillance" par validation clavier - HTML/CSS - Programmation

Marsh Posté le 23-07-2007 à 16:55:27    

Bonjour,
 
J'ai une liste de tâche sous forme de tableau (1d) où je peux mettre en
surbrillance 1 seul tache à la fois en utilisant les flêches haut et bas du  
clavier.
jusqu'ici, ça fonctionne.
 
Or, maintenant je veux pouvoir "validez" les tâches de ma liste dans l'ordre que  
je veux en les forcent à rester en surbrillance si j'ai appuyer sur "validez"
 
head

Code :
  1. <style type="text/css">
  2. <!--
  3. body {
  4. background-image: url(./images/guide-background.png);
  5. background-color: #000000;
  6. .tabnormal{background-color:white; color:navy; font-weight:bold}
  7. .tabover{background-color:green; color:white; font-weight:bold}
  8. }
  9. </style>
  10. <SCRIPT LANGUAGE="JavaScript">
  11. NavName = navigator.appName;
  12. NavVers = navigator.appVersion;
  13. Navigateur = NavName + " " + NavVers;
  14. </SCRIPT>
  15. <link href="style.css" rel="stylesheet" type="text/css">
  16. <script language="javascript">
  17. document.onkeypress = keyEvent;
  18. var index;
  19. var menu;
  20. function init(){
  21. index = 0;
  22. menu = new Array(
  23.  "tache n°1",
  24.  "tache n°2",
  25.  "tache n°3",
  26.  "tache n°4",
  27.  "tache n°5"
  28.  );
  29. drawMenu();
  30. }
  31. function keyEvent(e) {
  32. var key;
  33. if (e.keyCode) key = e.keyCode;
  34. else key = e.which;
  35. if(key == 116) {// rouge key
  36.   parent.window.location = './identification.html';
  37. }
  38. if(key == 117) {// vert key
  39.   parent.window.location = './identifica.html';
  40. }
  41. if(key == 118) {// jaune key
  42.   parent.window.location = './identification.html';
  43. }
  44. if(key == 119) {// bleu key
  45.   parent.window.location = './identification.html';
  46. }
  47. if(key == 38) {
  48. // key up
  49.  if(index > 0) {
  50.   index --;
  51.   drawMenu();
  52.  }
  53. }
  54. if(key == 40) {
  55. // key down
  56.  if(index < menu.length - 1) {
  57.   index ++;
  58.   drawMenu();
  59.  }
  60. }
  61. if(key == 13) {
  62. // validation key
  63.  switch(index){
  64.   case 0:
  65.    parent.window.location = './tache1.html';
  66.    break;
  67.   case 1:
  68.    parent.window.location = './tache2.html';
  69.    break;
  70.   case 2:
  71.    this.className='tabover';
  72.    //break;
  73.   case 3:
  74.    this.className='tabover';
  75.    //break;
  76.   case 4:
  77.    this.className='tabover';
  78.    //break;
  79.  }
  80. }
  81. }
  82. function drawMenu(){
  83. var str = '<table style="table">';
  84. for(var i = 0; i < menu.length ; i++) {
  85.  if(i == index) str += '<tr><td class="selected" height="25" width="650">&nbsp;&nbsp;&nbsp;' + menu[i] + "</td></tr>";
  86.  else str += '<tr><td class="normal" height="25">&nbsp;&nbsp;&nbsp;' + menu[i] + "</td></tr>";
  87. }
  88. str += "</table>";
  89. document.getElementById("tablo" ).innerHTML = str;
  90. }
  91. </script>


 
 
et body
 

Code :
  1. <body topmargin="0" marginheight="0" onload='init()' >
  2.   <p><div id="tablo" style="position:absolute;top:90px;left:-5px;"></div></p>
  3.  
  4. </body>


 
je cherche une solution et je suis novice.
 
merci
odo

Reply

Marsh Posté le 23-07-2007 à 16:55:27   

Reply

Marsh Posté le 23-07-2007 à 18:50:40    

Dans ton javascript le var index ne joue aucun rôle.
var index est défini dans la ligne 27 avec la valeur 0.
 
Tu as beau à faire des tests (switch), dans ton script sa valeur ne bouge pas est reste toujours à zéro.

Reply

Marsh Posté le 23-07-2007 à 23:04:11    

Sorry, j'étais trop vite.
Peut-être ceci:

Code :
  1. <HTML>
  2. <HEAD>
  3. <TITLE> New Document </TITLE>
  4. <style type="text/css">
  5. body {background-color: #FFFFFF;}
  6. .tabnormal{background-color:white; color:navy; font-weight:bold;}
  7. .tabover{background-color:green; color:white; font-weight:bold;}
  8. .tabdone{background-color:red; color:black; font-weight:bold;}
  9.       </style>
  10.       <script language="javascript">
  11.       document.onkeypress = keyEvent;      var index;      var menu;
  12.   var drap= new Array;
  13.       function init(){
  14.           menu = new Array("tache n°1","tache n°2","tache n°3","tache n°4","tache n°5" );
  15.   for(var i = 0; i < menu.length ; i++) {drap[i]=0}
  16.   index = 0;         drawMenu();
  17.       }
  18.       function keyEvent(e) {
  19.          var key;
  20.           if (e.keyCode) key = e.keyCode;
  21.           else key = e.which;
  22.           if((key == 38) && (index > 0)) {index --;drawMenu();}   // key up
  23.           if((key == 40) && (index < menu.length - 1))    index ++; drawMenu(); }    // key down
  24.           if(key == 13) {drap[index]="1"; drawMenu()}          // validation key
  25. }
  26.       function drawMenu(){
  27.       var str = '<table style="table">';
  28.       for(var i = 0; i < menu.length ; i++) {
  29. var h="tabnormal"; //neutre
  30. if(index==i){h="tabover" ; } //on y est
  31. if(drap[i]==1) {h="tabdone"} // c'est fait
  32. str += '<tr><td class="'+h+'" height="25" width="650">&nbsp;&nbsp;&nbsp;' + menu[i] + "</td></tr>";
  33.       }
  34.        str += "</table>";
  35.         document.getElementById("tablo" ).innerHTML = str;
  36.        }
  37.       </script>
  38. </HEAD>
  39.       <body topmargin="0" marginheight="0" onload='init()' >
  40.        <p><div id="tablo" style="position:absolute;top:90px;left:-5px;"></div></p>
  41.       </body>
  42. </BODY>
  43. </HTML>


 
Mais attention, si tu ne sauvegarde pas quelque part le var drap, cela ne fonctionne tant que tu restes sur la page actuelle!
 
 

Reply

Marsh Posté le 24-07-2007 à 11:29:19    

Merci d'avoir répondu;
je pense avoir attaqué trop gros par rapport à mes compétences avec cette question.
Je vais donc reformuler complètement différemment sur un autre post (ce sera plus logique)
 
odo

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed