J'utilise Twitter Bootstrap et je remarque que jQuery show()
ou fadeIn()
ne fait pas apparaître l'élément DOM marqué avec une classe hidden
car les fonctions jQuery ne suppriment que la display: none
spécification. Cependant, le visibility
est toujours défini sur hidden
.
Je me demande quelle est la meilleure façon de contourner ce problème?
- Supprimer la
hidden
classe sur l'élément - Modifier la propriété de visibilité
- Écraser la classe cachée dans mon propre css
En particulier, je veux savoir si résoudre ce problème avec jQuery ou css est mieux et pourquoi.
jquery
twitter-bootstrap
Lim H.
la source
la source
visibility: hidden
est de bootstrap responsive.Réponses:
La classe css que vous recherchez est
.collapse
. Cela définit l'élément surdisplay: none;
Donc, l'utilisation
$('#myelement').show()
fonctionnera correctement.MISE À JOUR: Bootstrap v3.3.6 a mis à jour .collapse vers:
la source
.slideDown()
,.fadeIn()
etc..hidden
dans Bootstrap est pour les choses que vous ne voulez jamais afficher..collapse
maintenant égalementvisibility: hidden;
Cela fera fondre votre élément invisible et supprimera la classe
http://jsfiddle.net/7qxVL/
Si vous n'avez pas vraiment besoin que l'élément soit invisible (c'est-à-dire qu'il prenne de l'espace), vous voudrez peut-être redéfinir .hidden (dans votre css local, ne changez pas la source d'amorçage, ou mieux encore, dans votre fichier LESS local).
la source
.hidden
pour les éléments que vous souhaitez afficher en utilisant javascript. Utilisez.collapse
plutôt.Avertissement:
bootstrap 3.3.0 vient de changer .collapse en:
Ce qui est un changement radical pour jQuery.show (), j'ai dû revenir à l'inlining:
pour continuer à utiliser jQuery comme suit:
La seule classe que j'ai pu trouver dans bootstrap 3.3.0 pour appliquer simplement 'display: none' est
la source
.collapse('hide')
et à la.collapse('show')
place des méthodes de jQuery. Vous pouvez définir la visibilité initiale directement dans le HTML via la classecollapse
(à masquer) oucollapse in
(à afficher). Voir getbootstrap.com/javascript/#collapse .J'ai eu le même problème. J'ai utilisé ce patch:
Ensuite, j'ai eu un autre problème, car mon application génère de nouveaux éléments et les ajoute / les ajoute. Ce que j'ai finalement fait, c'est après avoir généré le nouvel élément que je fais:
la source
Pour moi, c'était parce que bootstrap utilise le
!important
hack pour cacher et masquer la classe.Vous ne pouvez donc pas utiliser les
show()
méthodes etc fournies avec jquery. Au lieu de cela, vous devez écraser du code encore plus horrible en écrasant le code hacky.! important est une option de dernier recours et ne devrait vraiment pas être utilisé dans une bibliothèque principale comme bootstrap.
la source
Cela fonctionne, mais je vais essayer la première réponse et changer les classes en
.collapse
.la source