2010-06-18 8 views
0

j'ai script accordéon jquery comme ça ..préfixe + et - à l'aide divs jquery

<script type='text/javascript'> 
$(document).ready(function() { 
    $('div.Syb> div').hide(); 
    $('div.Syb> h4').click(function() { 
    $(this).next('div').slideToggle('fast') 
    .siblings('div:visible').slideUp('fast'); 
    }); 
}); 
</script> 

je dois montrer + et - symbole avant la div ..pour montrent que son .. sont effondrés Agrandi et

Comment puis-je le faire?

Répondre

2

Si vous n'êtes pas démenait Internet Explorer 7 ou moins, vous pouvez le faire en CSS, qui est l'endroit où il devrait être idéalement (comme il est exposé, ne se contente pas):

div.Syb> div:before 
{ 
    content: '+'; 
} 
div.Syb> div.hidden:before 
{ 
    content: '-'; 
} 

Ou vous pouvez jouer avec des images de fond.

Ensuite, il suffit d'utiliser toggleClass() pour donner à votre div une classe .hidden.

Si vous voulez le faire en jQuery directement vers le haut, vous aurez probablement changer votre balisage un peu:

<div class="Syb"> 
    <h4><span>+</span>Title One</h4> 
    <div id="one">Text</div> 
    <h4><span>+</span>Title Two</h4> 
    <div id="two">Text</div> 
    <h4><span>+</span>Title Three</h4> 
    <div id="three">Text</div> 
</div> 

Ensuite, vous pouvez simplement changer votre jQuery en tant que tel:

<script type='text/javascript'> 
$(document).ready(function() { 
    $('div.Syb> div').hide(); 
    $('div.Syb> h4').click(function() { 
     var span = $(this).children('span:first'); 
     span.text(span.text()=='+'?'-':'+'); 
     $(this).next('div').slideToggle('fast') 
      .siblings('div:visible').slideUp('fast'); 
    }); 
}); 
</script> 
+0

merci mec .. qui a fonctionné pour moi .. j'ai besoin de comprendre le code .. qu'est-ce que les enfants («span: first»); faire ? – Hacker

+1

Bien sûr! Les enfants (http://api.jquery.com/children/) recherchent les éléments enfants (définis ici comme 'span') de l'élément qui les a appelés, dans ce cas le H4, donc il dit "tous les tags SPAN à l'intérieur" l'étiquette H4 ". Le: first (http://api.jquery.com/first-selector/) est un pseudo-sélecteur qui dit simplement "le premier dans la liste des éléments", cela signifie que vous pourriez avoir plusieurs tags SPAN à l'intérieur du H4 et encore seulement le premier serait effectué. À l'intérieur du span.text est une déclaration conditionnelle sténographique, que vous pouvez lire plus ici: http://www.scribd.com/doc/1026312/Javascript-Shorthand-QuickReference – Keithamus

+0

merci pour la belle explication – Hacker