J'ai une série de boutons input
. Disons deux pour la simplicité. Chaque bouton a son propre contenu associé dans un div séparé. Tout le contenu est en divs invisibles (display: none
) pour commencer.Problème de basculement de la visibilité de plusieurs divs, puisque toggle() suit chaque élément séparément
Si vous cliquez sur un bouton, son contenu associé est affiché. Si vous cliquez à nouveau dessus, le contenu disparaît. Ceci est fait avec toggle()
. Le problème est que si vous cliquez sur un bouton, puis cliquez sur l'autre bouton, les deux div sont maintenant visibles.
Donc, ma question principale est la meilleure façon de résoudre ce problème. La solution que j'ai essayée ne fonctionne pas, donc si vous avez une approche entièrement nouvelle, s'il vous plaît faites le moi savoir, ou si vous pouvez affiner mon approche pour le faire fonctionner, ce serait génial aussi. Ok, sur la façon dont j'ai essayé de résoudre cela.
Pour résoudre ce problème, j'ai utilisé siblings()
pour m'assurer que tout le contenu divs
est invisible avant l'apparition d'un nouveau contenu divs.
Alors maintenant, si je clique sur 1, il apparaît. Si je clique sur 2, 1 et 2 disparait semble ..... mais maintenant, si je clique sur 1 à nouveau rien ne se passe (parce qu'il est mon deuxième clic sur le numéro 1, et toggle()
conserve la trace de chaque bouton)
Comment puis-je implémenter ce type de changement de contenu sans rencontrer ces problèmes?
(Sur la page réelle, il y a un nombre inconnu de boutons/combos div et l'utilisateur peut cliquer sur eux dans un ordre quelconque)
Here's an example of the problem code (click 1, 2, then 1)
Merci!
On dirait que la réponse peut être quelque chose en utilisant .trigger('click')
et :visible
... juste de la difficulté à le faire fonctionner .....
Très agréable. Je n'ai pas pensé à les enchaîner ensemble et à utiliser 'toggle(). Siblings()' –
Cunning - ne connaissait pas la version du paramètre zero de toggle. Comme d'habitude, il y a une solution simple qui vous regarde au visage.:-) – belugabob
Si vous utilisez toggle() sur un div vous n'avez pas non plus besoin de suivre l'état car il fera toujours ce qu'il faut: ouvrir lorsqu'il est fermé et inversement. – Tim