J'ai un menu/UL avec un groupe de LI, et à l'intérieur les LI, j'ai un peu plus UL, LI ... Jetez un oeil:Problème étrange avec jQuery bascule ..?
<ul class='parent'>
<li><a>Boules</a></li>
<li>
<a>Livres</a>
<ul class='child'>
<li><a>Magazines</a></li>
<li><a>Revues</a></li>
<li><a>Romans</a></li>
</ul>
</li>
<li>
<a>Wirelace (3 childs)</a>
<ul class='child'>
<li><a>Bleu</a></li>
<li>
<a>Rouge</a>
<ul class='subchild'>
<li><a>4mm</a></li>
<li><a>6mm</a></li>
</ul>
</li>
<li>
<a>Vert</a>
<ul class='subchild'>
<li><a>2mm</a></li>
<li><a>4mm</a></li>
<li><a>6mm</a></li>
</ul>
</li>
</ul>
</li>
</ul>
Tous UL .child et .subchild sont caché avec CSS display:none;
donc ce que vous voyez lorsque vous chargez la page est juste les 3 LIs de la classe PARENT (Boules, Livres, Wirelace).
J'ai ce code jQuery (fonctionne comme prévu) pour basculer l'affichage de l'UL .child, lorsque vous cliquez dessus le LI apparaissent, mais le subchild UL rester caché, comme prévu:
$("ul.parent li a").click(function() {
$(this).next().toggle();
return false;
});
I aussi celui-ci pour UL .subchild, mais il ne fonctionne pas, même si elle est identique:
$("ul.child li a").click(function() {
$(this).next().toggle();
return false;
});
il fonctionne comme prévu si je fais:
$(this).next().toggle().toggle();
Si j'utilise juste 1 toggle, il joue avec l'affichage (je le vois dans Firebug), mais s'il est caché (par le CSS original), il ajoute display: none. Si je supprime le CSS (le rendant visible au chargement de la page), il ajoute display: block.
La seule façon dont il agit comme prévu, est si je le force avec show() ou hide(). Mais alors je n'ai pas de fonction bascule.
Même un if($(this).is("visible"))
ne fonctionnera pas ...
qui est dans Firefox, Chrome, Safari, IE8.
Je suis désolé pour le long post, quelqu'un a une idée de ce qui pourrait causer que ... ???
Super, tout est logique maintenant ... Merci. – pnichols