2009-04-06 8 views
0

J'essaie de déclencher un show/hide d'un div à la fois.Afficher/Masquer plusieurs divs

Ce qui se passe, c'est que toutes les divs (.shareLink) s'ouvrent en même temps.

Ci-dessous mon jQuery:

$(document).ready(function(){ 
$(".shareLink").hide(); 
$("a.trigger").click(function(){ 
$(".shareLink").toggle("400"); 
return false; 
}); 
}); 

Ci-dessous mon HTML:

<dl class="links"> 
    <dd>content</dd> 
    <dt class="description">content</dt> 
    <ul class="tools">  
     <li><a class="trigger" href="#">Share Link</a></li> 
    </ul> 
</dl> 
<div class="shareLink"> 
<?php print check_plain($node->title) ?> 
</div> 

serait très apprécié Toute aide avec le problème ci-dessus.

Cheers.

+0

s'il vous plaît envoyer comment votre HTML est configuré, sinon nous ne pouvons pas vraiment vous aider. Comme c'est le cas maintenant, vous sélectionnez tout avec une classe de shareLink et de basculer dessus, donc bien sûr tout s'ouvre. –

+0

C'est aussi une bonne idée de formater votre code source en fonction des conventions de style acceptées: http://en.wikipedia.org/wiki/Programming_style#Indenting Cela vous permet de lire et de comprendre le code beaucoup plus facilement. – Calvin

Répondre

4

En fonction de votre HTML, vous devez faire ceci:

$(function() { 
    $("div.shareLink").hide(); 
    $("a.trigger").click(function(){ 
     $(this).parents('dl.links').next('div.shareLink').toggle(400); 
     return false; 
    }); 
}); 

Cette marche jusqu'à la DL mère, puis se déplace à la prochaine shareLink div et il permet de basculer.

+0

Merci pour votre aide. J'ai mis le mauvais code par accident. Le code actuel a maintenant été collé dans mon message original. –

+0

C'est la même idée que précédemment, juste en remontant plus loin vers le dl. J'ai mis à jour mon code pour le montrer. –

0

Vous pouvez essayer:

$(document).ready(function(){ 
    $(".shareLink").hide(); 
    $("a.trigger").click(function(e){ 
     e.preventDefault(); 
     $(this).next().toggle("400"); 
    }); 
}); 

La réponse est que cela dépend de la structure de votre document. Voici un exemple de quelque chose qui fonctionnera avec la fonction ci-dessus.

<a class="trigger">click here</a> 
<div class="shareLink"> 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
</div> 
1
$(".shareLink").toggle("400"); 

Fait référence à une div sur la page avec une classe de ".shareLink".

Vous devrez trouver un moyen de distinguer la div spécifique que vous voulez montrer.