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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  onmouseover sur un tr

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

onmouseover sur un tr

n°1951131
Magg27
Posté le 17-12-2009 à 11:40:08  profilanswer
 

Bonjour,

 

J'ai un problème tout bête mais qui me fais perdre patience :

 

J'ai un tableau HTML du type :

 
Code :
  1. <table>
  2.      <tr class="police_table" onmouseout="javascript:this.style.backgroundColor='#EEEEF7';" onmouseover="javascript:this.style.backgroundColor='#C0C0C0';">
  3.           <td rowspan="3">Produit</td>
  4.           <td>Numéro Produit 1</td>
  5.           <td>Nom Produit 1</td>
  6.      </tr>
  7.      <tr>
  8.           <td>Numéro Produit 2</td>
  9.           <td>Nom Produit 2</td>
  10.      </tr>
  11.      <tr>
  12.           <td>Numéro Produit 3</td>
  13.           <td>NomProduit 3</td>
  14.      </tr>
  15. </table>
 

Le truc c'est qu'à cause du rowspan, je ne peut pas surligner toute la ligne entière au passage de la souris... Quelqu'un peut m'aider ?


Message édité par Magg27 le 17-12-2009 à 11:40:47
mood
Publicité
Posté le 17-12-2009 à 11:40:08  profilanswer
 

n°1951133
pataluc
Posté le 17-12-2009 à 11:50:17  profilanswer
 

chez moi ca marche :spamafote:
 
quand je survole "produit" ou "Numéro Produit 1" ou "Nom Produit 1" j'ai bien ces trois éléments qui changent de couleur. ou alors ce n'est pas ca que tu veux?

n°1951136
Magg27
Posté le 17-12-2009 à 11:53:19  profilanswer
 

Merci pour ta réponse. Effectivement, ce n'est pas ça que je veux : j'aimerais que tout change de couleur au passage de la souris.

n°1951138
lautrejojo
Posté le 17-12-2009 à 11:57:11  profilanswer
 

Je ne comprend pas bien ton soucis : en fait, que veux tu surligner exactement au passage de la souris ?
De mon côté, j'ai la première ligne qui est surlignée, et le rowspan fait comme si la première colonne l'était aussi.
 
Tu veux surligner tout le tableau ? Juste certaines lignes ?


Message édité par lautrejojo le 17-12-2009 à 11:58:19

---------------
Question sur la programmation ? DevWeb it!
n°1951141
Magg27
Posté le 17-12-2009 à 12:01:31  profilanswer
 

Désolé pour mon manque de clarté. En fait j'aimerais qu'au passage de la souris tous les éléments du tableau changent de couleur. C'est-à-dire "Produit", "Numéro Produit 1", "Nom Produit 1", "Numéro Produit 2", "Nom Produit 2", "Numéro Produit 3", "Nom Produit 3". En bref tout.

n°1951145
lautrejojo
Posté le 17-12-2009 à 12:04:21  profilanswer
 

dans ce cas,  
 

Code :
  1. <table class="police_table" onmouseout="javascript:this.style.backgroundColor='#EEEEF7';" onmouseover="javascript:this.style.backgroundColor='#C0C0C0';">
  2.      <tr>
  3.           <td rowspan="3">Produit</td>
  4.           <td>Numéro Produit 1</td>
  5.           <td>Nom Produit 1</td>
  6.      </tr>
  7.      <tr>
  8.           <td>Numéro Produit 2</td>
  9.           <td>Nom Produit 2</td>
  10.      </tr>
  11.      <tr>
  12.           <td>Numéro Produit 3</td>
  13.           <td>NomProduit 3</td>
  14.      </tr>
  15. </table>


 
Il me semble que ceci répond à ton besoin : j'ai déplacé le javascript à l'ensemble du tableau.


---------------
Question sur la programmation ? DevWeb it!
n°1951189
Magg27
Posté le 17-12-2009 à 14:27:59  profilanswer
 

Merci, mais j'ai pris un mauvais exemple. C'est plus compliqué que ça en fait. Il vaut mieux que je présente le véritable contexte :
 
A l'aide d'une BDD MySQL, il faut que j'affiche diverses informations concernant les clients d'une entreprise sous forme de tableau :
 
| Nom Client | Pays Client | Produits vendus au client                 | Spécifications produit
| Client x     | France       | Cette cellule peut contenir n produits  | Cette cellule peut contenir n spécifications
 
Du coup voici comment je m'y suis pris :

Code :
  1. <table border="1">
  2.      <tr>
  3.           <td>Nom Client</td>
  4.           <td>Pays Client</td>
  5.           <td>Produits vendus au client</td>
  6.           <td>Spécifications produit</td>
  7.      </tr>
  8.      <tr>
  9.           <td rowspan="n">Client x</td>
  10.           <td rowspan="n">Pays Client</td>
  11.           <td>Produit x</td>
  12.           <td>Spécification x</td>
  13.      </tr>
  14.      <tr>
  15.           <td>Produit x+1</td>
  16.           <td>Spécification x+1</td>
  17.      </tr>
  18.      <tr>
  19.           <td>Produit x+2</td>
  20.           <td>Spécification x+2</td>
  21.      </tr>
  22.      etc ....
  23. </table>


A présent je voudrais savoir comment peut-on se débrouiller pour que lorsque l'on passe la souris sur un client, toute la ligne le concernant (avec tous ses produits) peut être mise en surbrillance.
 
J'ai pensé à diviser ce plan en 2 tables pour les agréger dans une même table, mais le résultat est loin d'être top.
 
J'espère que j'ai été clair ... c'est assez difficile à expliquer.
 
Merci encore !

n°1951193
pataluc
Posté le 17-12-2009 à 14:31:57  profilanswer
 
n°1951233
Magg27
Posté le 17-12-2009 à 15:39:12  profilanswer
 

Merci beaucoup pour ton aide pataluc mais c'est pas 100% adapté à ce que je veux faire ... Sinon j'ai vu qu'il avait l'outil javascript nextSibling qui peut surbriller 2 lignes en même temps mais je vois pas tout à fait comment l'adapter, à vrai dire je débute en javascript.

n°1951236
pataluc
Posté le 17-12-2009 à 15:56:08  profilanswer
 

Magg27 a écrit :

Merci beaucoup pour ton aide pataluc mais c'est pas 100% adapté à ce que je veux faire ...


comment ca pas adapté? tu veux quoi exactement?
 
Edit: ok je crois que j'ai compris, tu veux sélectionner toutes les lignes d'un client, même si tu survole une des cases produit.
 
du coup je sais pas trop. à mon avis le plus simple serait de grouper les cellules avec une classe précise, afin de pouvoir modifier leur couleur facilement...


Message édité par pataluc le 17-12-2009 à 16:02:53
mood
Publicité
Posté le 17-12-2009 à 15:56:08  profilanswer
 

n°1951246
pataluc
Posté le 17-12-2009 à 16:12:26  profilanswer
 

je te propose ca:

Code :
  1. <html>
  2.   <head>
  3.     <title></title>
  4.     <script src="jquery.js" type="text/javascript"></script>
  5.    
  6.     <script type="text/javascript">
  7.    
  8.     $(document).ready(function(){
  9.       $('td').mouseover(function(){
  10.         $("td." + $(this).attr('class')).css("background-color","#69f" );
  11.        
  12.       }).mouseout(function(){
  13.         $("td." + $(this).attr('class')).css("background-color","#fff" );
  14.       });
  15.     });
  16.    
  17.     </script>
  18.   </head>
  19.   <body>
  20.     <table id="tableone" border="1">
  21.      <tr>
  22.           <td>Nom Client</td>
  23.           <td>Pays Client</td>
  24.           <td>Produits vendus au client</td>
  25.           <td>Spécifications produit</td>
  26.      </tr>
  27.      <tr>
  28.           <td rowspan="3" class="client1">Client x</td>
  29.           <td rowspan="3" class="client1">Pays Client</td>
  30.           <td class="client1">Produit x</td>
  31.           <td class="client1">Spécification x</td>
  32.      </tr>
  33.      <tr>
  34.           <td class="client1">Produit x+1</td>
  35.           <td class="client1">Spécification x+1</td>
  36.      </tr>
  37.      <tr>
  38.           <td class="client1">Produit x+2</td>
  39.           <td class="client1">Spécification x+2</td>
  40.      </tr>
  41.      <tr>
  42.           <td rowspan="3" class="client2">Client x</td>
  43.           <td rowspan="3" class="client2">Pays Client</td>
  44.           <td class="client2">Produit x</td>
  45.           <td class="client2">Spécification x</td>
  46.      </tr>
  47.      <tr>
  48.           <td class="client2">Produit x+1</td>
  49.           <td class="client2">Spécification x+1</td>
  50.      </tr>
  51.      <tr>
  52.           <td class="client2">Produit x+2</td>
  53.           <td class="client2">Spécification x+2</td>
  54.      </tr>         
  55.     </table>
  56.   </body>
  57. </html>
 


ca semble bien marcher chez moi... par contre ca sous entend d'utiliser l'attribut class pour grouper des cellules... c'est pas über sexy, on doit pouvoir faire mieux mais pour le moment je vois pas comment.


Message édité par pataluc le 17-12-2009 à 16:14:34
n°1951300
Magg27
Posté le 17-12-2009 à 18:00:53  profilanswer
 

Merci pataluc !!!!! C'est formidable ce que tu as fait !! Pour ce qui est des attributs class, certes ça alourdie le code mais dans mon programme ça s'insère automatiquement avec une boucle php donc ça ne m'a pas posé problème ...
Encore merci pour tout !!! Merci aussi de m'avoir fait découvrir jQuery !


Message édité par Magg27 le 17-12-2009 à 18:05:23

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

  onmouseover sur un tr

 

Sujets relatifs
onmouseoverProblème avec onmouseover
Problème d'ordre de superposition une image affichée avec onmouseoverdiv surperposées et onMouseOver
onMouseOver-Out sur tableauxEvent onmouseover et onmouseout
onmouseover dans divonMouseover/out pour les images bordure
[résolu] changement de texte à un endroit précis avec _ onmouseoverOnMouseOver et IE6 ???
Plus de sujets relatifs à : onmouseover sur un tr


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