2013-02-12 3 views
0

J'essaye de faire fonctionner un slidetoggle pour afficher une rangée de table cachée quand un lien est cliqué dans la rangée précédente. J'ai d'abord eu un problème où le glissement n'était pas lisse et ensuite découvert que Slidetoggle ne joue pas bien avec des rangées de table. J'ai donc collé le contenu dans la rangée cachée dans un div dans la rangée et j'ai décidé de le cacher à la place. Mon problème maintenant est que je n'arrive pas à trouver le bon code pour jquery pour trouver cette div dans la rangée.Jquery SlideToggle div dans une ligne de table séparée

J'ai un exemple jsFiddle ici: http://jsfiddle.net/yrM3H/811/

Un exemple de mon code est le suivant:

html:

<table> 
    <tr> 
     <td> 
      <div class="hidden">Expanded!</div> 
     </td> 
    </tr> 
    <tr> 
     <td><div class="toggle">Content</div></td> 
    </tr> 
    <tr> 
     <td> 
      <div class="hidden">Expanded!</div> 
     </td> 
    </tr> 
</table> 

js:

jQuery(document).ready(function() { 
    jQuery(".toggle").parent().parent().next().children().next(".hidden").hide(); 
    jQuery(".toggle").click(function() { 
     $('.active').not(this).toggleClass('active').parent().parent().next().children().next('.hidden').slideToggle(300); 
     $(this).toggleClass('active').parent().parent().next().children().next('.hidden').slideToggle("fast"); 
    }); 
}); 

Répondre

2

Cela devrait corriger votre numéro: http://jsfiddle.net/yrM3H/813/

Je l'ai modifié de sorte qu'il utilise .find('hidden') sur la deuxième ligne pour trouver l'élément enfant. Auparavant, il ne trouvait pas l'élément du tout. Sur une note - Je ne comprends pas pourquoi vous ne cachez pas tous les éléments .hidden avec $('.hidden').hide();?

+0

Parfait. Je vous remercie. Pour être honnête, je ne sais pas grand-chose sur JS et l'endroit où j'ai trouvé ce code à l'origine était de les cacher de cette façon, donc je l'ai fait aussi. J'aime mieux ton idée :) – BlueCaret