[jquery] Question de débutant...

Question de débutant... [jquery] - HTML/CSS - Programmation

Marsh Posté le 30-06-2009 à 14:20:18    

Voici ma structure html :

Code :
  1. <button id="btndistrib1" class="btnDistrib">Display</button>
  2. <div id="distrib1" style="display:none"> </div>
  3. <button id="btndistrib2"  class="btnDistrib" >Display</button>
  4. <div id="distrib2" style="display:none"> </div>


 
Je voudrai que quand on clic sur un bouton, la div correspondante s'affiche/se cache.
Bon, je peux le faire "bêtement", en écrivant un onclick sur chacun de mes boutons, mais je me dis qu'en Jquery, on doit pouvoir faire mieux.
Le souci, c'est que j'arrive pas a trouver la div a partir du bouton... Je m'explique, je voulais faire ceci :

Code :
  1. $("button.btnDistrib" ).click(function(e){
  2.      $(e.target + "div" ).toggle("slow" );
  3.     });


bien entendu, le bout en gras est même pas valide.
J'ai aussi testé  

Code :
  1. $(e.target).find('div:first')


mais ca marche pas (parceque tout betement, ma div est pas descendante du button, j'imagine...)
 
Merci !


Message édité par Morningkill le 30-06-2009 à 14:22:35
Reply

Marsh Posté le 30-06-2009 à 14:20:18   

Reply

Marsh Posté le 30-06-2009 à 14:20:47    

édite ton post et utilise la balise [code] stp. (bouton http://forum-images.hardware.fr/icones/message/c.gif)


Message édité par pataluc le 30-06-2009 à 14:21:07
Reply

Marsh Posté le 30-06-2009 à 14:39:20    

je connais pas (trop) jquery,mais tu dois pouvoir faire ca:

Code :
  1. $("button.btnDistrib" ).click(function(e){
  2.         $(e.target.id.substring(3)).toggle("slow" );
  3.       });
 

tu récupère l'id, comme c'est le même à "btn" près, tu enlève "btn" et c'est bon...


Message édité par pataluc le 30-06-2009 à 14:39:59
Reply

Marsh Posté le 30-06-2009 à 14:56:07    

ou plutot ca:

Code :
  1. $("button.btnDistrib" ).click(function(e){       
  2.         $("div#"+e.target.id.substring(3)).toggle("slow" );       
  3.       });

(j'avais prévenu je connais pas jquery, du coup j'utilisais mal les sélecteurs

Reply

Marsh Posté le 30-06-2009 à 14:57:26    

Effectivement, entre tes deux réponses, j'ai fait ca

Code :
  1. $("#"+e.target.id.substring(3)).toggle("slow" );


et ca marche.

 

Mais c'est encore mieux avec le div, je crois que c'est plus performant.

 

Merci !


Message édité par Morningkill le 30-06-2009 à 15:06:09
Reply

Sujets relatifs:

Leave a Replay

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