Je souhaite améliorer certains fieldsets avec la possibilité d'afficher/masquer leur contenu en cliquant sur leur libellé.jQuery masquer/afficher des ensembles de champs
Actuellement, le HTML ressemble à ceci:
<fieldset>
<legend>Fieldset 1</legend>
<!-- Some input, p, div, whatever -->
</fieldset>
<fieldset>
<legend>Fieldset 2</legend>
<!-- Some input, p, div, whatever -->
</fieldset>
Ainsi, le clic d'un fieldset legend
, autre chose que la légende de la clique fieldset parent doit être basculée.
J'ai essayé d'utiliser ceci:
$("fieldset *:not(legend)").hide();
$("fieldset legend").click(function(){
$(this).nextAll().slideToggle();
});
Mais il ne fait rien (même pas cacher le contenu en premier lieu). Bien sûr, je ne veux que basculer la vue sur l'ensemble de champs sur lequel l'utilisateur a cliqué, donc il doit d'une manière ou d'une autre déterminer quelle légende a été cliquée puis masquer le contenu des fieldsets correspondants. Bien sûr, je pourrais leur donner tous les IDs et écrire le code pour chaque fieldset, mais c'est plutôt redondant en voyant qu'il serait toujours le même je pense qu'il doit y avoir un moyen de rendre cette fonctionnalité universelle pour n'importe quel nombre de fieldsets. ..
Quelqu'un a une idée géniale?
Ouais, thats bien une façon de le faire bien sûr et ça marchera, c'est encore un hack et nécessite l'édition du code HTML: -/Still, merci. –
Comment cela se passe-t-il comme un hack? ... vous n'avez pas spécifié que vous ne vouliez pas modifier le code HTML. – Mottie