[RESOLU][Javascript] Effet slidetoggle jquery dans un tableau

Effet slidetoggle jquery dans un tableau [RESOLU][Javascript] - HTML/CSS - Programmation

Marsh Posté le 08-08-2011 à 19:57:55    

Bonjour à tous,
cela fait maintenant 2 jours que je me casse la tête avec cette libraire Javascript appelée Jquery, car j'aimerais beaucoup utiliser l'effet slidetoggle afin d'afficher une ligne cachée d'un tableau et aussi me servir un peux plus du javascript que je délaisse beaucoup pour le php.
 
Concrètement j'ai donc ma première ligne du tableau, divisée en 3 cellule avec des <td></td>, puis la suivante qui doit être masquée au chargement et montrée quand le visiteur clique sur la 3eme cellule du haut.
 
Jetez un coup d’œil ici pour mieux me comprendre.
 
J'ai donc l'effet recherché sur celui du haut fait avec du css mais il m'apporte trop de contrainte, j'ai besoin d'un tableau. Le problème est que dés que je met mon div dans le tableau, plus rien ne se passe.
 
voici le code de la partie du haut :
 

Code :
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.    
  4.     $('.enter').click(function(){
  5.         $(this).next('.content').slideToggle('slow');
  6.     });
  7. });
  8. </script>
  9. </head>
  10. <body>
  11.  <br /><br /><br />
  12.     <div class="enter">Click me !</div>
  13.     <div class="content" style="display: none;">
  14.         Ligne sens&eacute;e<br />
  15.  etre masqu&eacute;e au chargement.<br />
  16. </div>


 
 
Et voici celui que je veux faire marcher :
 
 

Code :
  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3.    
  4.     $('.enter2').click(function(){
  5.         $(this).next('.content2').slideToggle('slow');
  6.     });
  7. });
  8. </script>
  9. </head>
  10. <body>
  11. <table border="1" width="500">
  12.  <tr>
  13.   <td><a href="http://google.fr/">Google.fr</a></td>
  14.   <td>Le 08/08/2011</td>
  15.   <div class="enter2">
  16.    <td>+ (cellule qui montre le dessous au clic)</td>
  17.   </div>
  18.  </tr>
  19.  <div class="content2" style="display: none;">
  20.   <tr>
  21.    <td colspan="3">
  22.    Ligne sens&eacute;e<br />
  23.    etre masqu&eacute;e au chargement.<br />
  24.    </td>
  25.   <tr>
  26.  </div>
  27. </table>


 
Honnêtement j'y ai passé des heures et des heures mais même avec toutes les pages qui expliquent comment faire, je n'arrive jamais a utiliser l'effet sur un tableau, je vous demande donc un peu d'aide :)
 
Merci d'avance !


Message édité par spaik21 le 10-08-2011 à 23:02:18
Reply

Marsh Posté le 08-08-2011 à 19:57:55   

Reply

Marsh Posté le 09-08-2011 à 17:05:58    

Tu peux jeter un oeil sur un de mes tutos à la page  
http://www.patrickcleder.com/tuto_31.php en espérant que cela t'inspire.
Cordialement.

Reply

Marsh Posté le 10-08-2011 à 15:43:20    

Merci, je vais y jeter un oeil :)

Reply

Marsh Posté le 10-08-2011 à 22:17:06    

Ce genre d'animation ne fonctionne pas sur des lignes de tableau.
Mais bien fadeIn/fadeOut qui respecte le display du tr.
http://stackoverflow.com/questions [...] -table-row
 
Sinon, dans une table, tu ne peux pas mettre de div autre part que dans un td, et donc en ayant une table "valide", il faut remonter d'un niveau dans le dom pour trouver la partie à montrer.
 

Code :
  1. $(document).ready(function() {
  2.      var hideEl=function() {
  3.         $(".content" ).hide();
  4.         $(".enter2" ).bind('click', function() {
  5.            var target=$(this).parent().next();
  6.            target.fadeIn("slow" );
  7.          });
  8.      };
  9. hideEl();
  10. });


 

Code :
  1. <table border="1" width="500" cellspacing="0" cellpadding="0">
  2.         <tr>
  3.             <td><a href="http://google.fr/">Google.fr</a></td>
  4.             <td>Le 08/08/2011</td>
  5.             <td class="enter2">+</td>
  6.         </tr>
  7.         <tr class="content">
  8.             <td colspan="3">
  9.                 <p>Lorem ipsum dolor sit amet</p>            
  10.             </td>
  11.         </tr>
  12.     </table>

Reply

Marsh Posté le 10-08-2011 à 22:54:46    

ok je te remercie j'ai testé ca mais je prefere l'effet du slidetoggle du coup me suis fait ch*** a simuler un tableau en css et ca donne le resultat que je voulais... mais vu que je galere en css et en javascript :(.
voila en gros le resultat :
 
http://fundev21.free.fr/test/show.php
sauf que maintenant j'ai plusieurs ligne et a chacune d'elle on peut en derouler une en plus.

Reply

Marsh Posté le 30-01-2012 à 20:52:24    

Repenché dessus, et trouvé dans un tableau...
 

Code :
  1. <script charset="utf-8" src="http://code.jquery.com/jquery-1.7b1.js"></script>
  2. <script type="text/javascript">
  3.    $(document).ready(function(){
  4.  $("#tableToggle tr.toggleable" ).hide();
  5.  $("#tableToggle .tableToggleButton" ).click(function(){
  6.         $(this).parent().parent().next('tr').slideToggle('medium');                                                                                                   
  7. });
  8. });
  9. </script>
  10. <br />
  11. <table id="tableToggle">
  12. <tr>
  13. <td><div class="tableToggleButton">More info 1</div></td>
  14. </tr>
  15. <tr class="toggleable">
  16. <td>Main info 1</td>
  17. </tr>
  18. <tr>
  19. <td><div class="tableToggleButton">More info 2</div></td>
  20. </tr>
  21. <tr class="toggleable">
  22. <td>Main info 2</td>
  23. </tr>
  24. </table>


Message édité par spaik21 le 30-01-2012 à 20:52:49
Reply

Sujets relatifs:

Leave a Replay

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