Bien que cette question ait reçu de nombreuses réponses auparavant, j'ai pensé que j'y ajouterais une réponse plus complète et plus solide pour les futurs utilisateurs. La réponse principale résout le problème, mais je pense qu'il vaut peut-être mieux connaître / comprendre les différentes façons de montrer / cacher les choses.
.
Modification de l'affichage à l'aide de css ()
C'est la façon dont je le faisais jusqu'à ce que je trouve certaines de ces autres façons.
Javascript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
Avantages:
- Masque et affiche. C'est à peu près ça.
Les inconvénients:
- Si vous utilisez l'attribut "display" pour autre chose, vous devrez coder en dur la valeur de ce qu'elle était avant de se cacher. Donc, si vous aviez "inline", vous devriez le faire
$("#element_to_hid").css("display", "inline");sinon il reviendra par défaut à "block" ou quoi que ce soit d'autre dans lequel il sera forcé.
- Se prête aux fautes de frappe.
Exemple: https://jsfiddle.net/4chd6e5r/1/
.
Modification de l'affichage à l'aide de addClass () / removeClass ()
Lors de la configuration de l'exemple pour celui-ci, j'ai rencontré des défauts sur cette méthode qui la rendent très peu fiable.
CSS / Javascript:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
Avantages:
- Il se cache ... parfois. Reportez-vous à p1 sur l'exemple.
- Après avoir dévoilé, il reviendra à utiliser la valeur d'affichage précédente .... parfois. Reportez-vous à p1 sur l'exemple.
- Si vous voulez saisir tous les objets cachés, il vous suffit de le faire
$(".hidden").
Les inconvénients:
- Ne se cache pas si la valeur d'affichage a été définie directement sur le html. Reportez-vous à la p2 sur l'exemple.
- Ne se cache pas si l'affichage est défini en javascript à l'aide de css (). Reportez-vous à la p3 sur l'exemple.
- Un peu plus de code car vous devez définir un attribut css.
Exemple: https://jsfiddle.net/476oha8t/8/
.
Modification de l'affichage à l'aide de toggle ()
Javascript:
$("element_to_hide").toggle(); // To hide and to unhide
Avantages:
- Fonctionne toujours.
- Vous permet de ne pas avoir à vous soucier de l'état dans lequel il se trouvait avant le changement. L'utilisation évidente pour cela est pour un bouton à bascule ....
- Court et simple.
Les inconvénients:
- Si vous avez besoin de savoir dans quel état il passe pour faire quelque chose qui n'est pas directement lié, vous devrez ajouter plus de code (une instruction if) pour savoir dans quel état il se trouve.
- Semblable à la précédente, si vous souhaitez exécuter un ensemble d'instructions qui contient la bascule () dans le but de le masquer, mais vous ne savez pas s'il est déjà masqué, vous devez ajouter une vérification (une instruction if) pour le découvrir en premier et s'il est déjà masqué, sautez ensuite. Reportez-vous à la p1 de l'exemple.
- En relation avec les 2 inconvénients précédents, l'utilisation de toggle () pour quelque chose qui se cache ou s'affiche spécifiquement, peut être source de confusion pour les autres qui lisent votre code car ils ne savent pas de quelle manière ils vont basculer.
Exemple: https://jsfiddle.net/cxcawkyk/1/
.
Modification de l'affichage à l'aide de hide () / show ()
Javascript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
Avantages:
- Fonctionne toujours.
- Après le dévoilement, il reviendra à l'utilisation de la valeur d'affichage précédente.
- Vous saurez toujours à quel état vous permutez afin que vous:
- vous n'avez pas besoin d'ajouter des instructions if pour vérifier la visibilité avant de changer d'état si l'état est important.
- ne confondra pas les autres personnes lisant votre code quant à l'état dans lequel vous passez si, si l'état est important.
- Intuitif.
Les inconvénients:
- Si vous souhaitez imiter une bascule, vous devrez d'abord vérifier l'état, puis passer à l'autre état. Utilisez plutôt toggle () pour ces derniers. Reportez-vous à la p2 de l'exemple.
Exemple: https://jsfiddle.net/k0ukhmfL/
.
Dans l'ensemble, je dirais que le mieux est de cacher () / afficher () sauf si vous en avez spécifiquement besoin pour être une bascule. J'espère que vous avez trouvé ces informations utiles.
return falseàonclick?