Changement bouton OnClick

Changement bouton OnClick - HTML/CSS - Programmation

Marsh Posté le 24-04-2008 à 16:14:36    

Bonjour à tous,
 
 
Sur la page de mon site, je dispose de bouton. Je voudrais faire en sorte que mes boutons changes de couleurs lors du survol (onmouseover), revienne à leur état d'origine lors du retrait (onmouseout), et reste dans l'état de survol lors du clic du chargement de la page voici ce que j'ai fait :
 

Code :
  1. <div id='parent'>
  2. <div id="logo" style="position: absolute; left: 11px; top: 5px; width: 183px; height: 57px; z-index: 6;">
  3.  <a href="index.php"><img width="190" height="47" border="0" src="images/logo.gif"/></a>
  4. </div>
  5. <div id='entete'>
  6.  <div id="metiers" style="position: relative; left: 290px; top: 71px; width: 478px; height: 41px; z-index: 4;">
  7.   <table border="0" cellspacing="0" cellpadding="0">
  8.    <tbody>       
  9.            <tr>
  10.      <td><a href="#" onClick="swapImage('visuAlarm.php','zoneAffiche','images/menu/metiers/BoutonOverAlarme.gif','alarme');clic=true" onMouseOut="swapImage('','','images/menu/metiers/BoutonAlarme.gif','alarme');etat=0;" onMouseOver="swapImage('','','images/menu/metiers/BoutonOverAlarme.gif','alarme');etat=1;"><img src="images/menu/metiers/BoutonAlarme.gif" border="0"  id="alarme" name="alarme" ></a></td>
  11. </tr>
  12.           </tbody>
  13.        </table>
  14.       </div>
  15. </div>
  16. <div id='contenu'>
  17.  <div id='zoneAffich'></div>
  18.  <noscript>
  19.   <div id='Warning'>
  20.   Attention, JavaScript inactif<br>
  21.   Activé puis réactualisé
  22.   </div>
  23.  </noscript>
  24.  <div align="center">
  25.   <p/>
  26.    <table width="700" align="right">
  27.           <tr>
  28.          
  29.     </tr>
  30.    </table>
  31.  </div>
  32. </div>
  33. </div>
  34. </body>


 
 
Voici le code JS
 

Code :
  1. function envoieRequete(url,id){
  2. var xhr_object = null;
  3. var position = id;
  4. if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest();
  5. else
  6. if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  7.  xhr_object.open("GET", url, true);
  8.  xhr_object.onreadystatechange = function(){
  9.   if ( xhr_object.readyState == 4 ){
  10.    document.getElementById(position).innerHTML = xhr_object.responseText;
  11.   }
  12.  }
  13. xhr_object.send(null);
  14. }
  15. var clic=false;
  16. var etat=0;
  17. var urlFile=" ";
  18. var posFile=" ";
  19. function swapImage(urlFile,posFile,urlImg,posImg)
  20. {
  21. if (!clic)
  22. {
  23.  if(etat==0)
  24.  {
  25.   document.getElementById(posImg).src=urlImg;
  26.         }
  27.      
  28.  if(etat==1)
  29.  {
  30.   document.getElementById(posImg).src=urlImg;
  31.   if((!urlFile)&&(!posFile))
  32.    {
  33.     envoieRequete(urlFile,posFile);
  34.    }
  35.  }
  36.    }
  37. }


 
 
Le changement de couleur fonctionne lors du premier OnMouseOver puis message d'erreur lors du OnMouseOut
mais change quand même de couleur pour revenir à l'origine

Code :
  1. uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: javascript: eval(__firebugTemp__); :: anonymous :: line 1" data: no]


 
Lorsque je clique, la couleur reste fixe mais la page ne s'affiche pas.
 
J'avoue ne pas savoir, cela fait un moment que je cherche et je ne trouve pas, auriez-vous des idées ???
 
Merci d'avance,
 
Cordialement,
 

Reply

Marsh Posté le 24-04-2008 à 16:14:36   

Reply

Marsh Posté le 24-04-2008 à 17:15:20    

Bon et bien finalement cela fonctionne, j'ai dû légèrement modifier mon .js
 

Code :
  1. var clic=false;
  2. var etat=0;
  3. function swapImage(urlFile,posFile,urlImg,posImg)
  4. {
  5. var url = urlFile;
  6. var id = posFile;
  7. if (!clic)
  8. {
  9.  if(etat==0)
  10.  {
  11.   document.getElementById(posImg).src=urlImg;
  12.         }
  13.      
  14.  if(etat==1)
  15.  {
  16.   document.getElementById(posImg).src=urlImg;
  17.   if((url!="" )&&(id!="" ))
  18.    {
  19.     envoieRequete(url,id);
  20.    }
  21.  }
  22. }
  23. }


 
En revanche, un autre problème se dévoile.
 
Une fois cliqué sur un bouton et que la page s'est affiché, je ne peux plus cliqué sur les autres bouton, ça ne fait rien et je n'est pas de message d'erreur
 
Auriez-vous une idée ?
 
Merci d'avance,

Reply

Marsh Posté le 25-04-2008 à 10:24:49    

Re bonjour,
 
J'avoue ne pas comprendre pourquoi cela bloque.
 
Je découvre le monde du dev web donc dsl pour les questions idiotes.
 
Je pense que la manière que j'utilise n'est pas la bonne.
 
Pourriez-vous me conseiller, merci d'avance,

Reply

Sujets relatifs:

Leave a Replay

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