Estoy usando Twitter Bootstrap y noto que jQuery show()
o fadeIn()
no hace que el elemento DOM marcado con class hidden
aparezca porque las funciones de jQuery solo eliminan la display: none
especificación. Sin embargo, visibility
todavía está configurado en hidden
.
Me pregunto cuál es la mejor manera posible de solucionar esto.
- Eliminar la
hidden
clase en el elemento - Cambiar la propiedad de visibilidad
- Sobrescribir la clase oculta en mi propio CSS
En particular, quiero saber si arreglar esto con jQuery o css es mejor y por qué.
jquery
twitter-bootstrap
Lim H.
fuente
fuente
visibility: hidden
es de bootstrap responsive.Respuestas:
La clase css que estás buscando es
.collapse
. Esto establece el elemento endisplay: none;
Entonces el uso
$('#myelement').show()
funcionará correctamente.ACTUALIZACIÓN: Bootstrap v3.3.6 ha actualizado .collapse de nuevo a:
fuente
.slideDown()
,.fadeIn()
, etc..hidden
, en Bootstrap es para cosas que nunca quieres que se muestre..collapse
ahora también se establecevisibility: hidden;
Esto desvanecerá su elemento invisible y eliminará la clase
http://jsfiddle.net/7qxVL/
Si realmente no necesita que el elemento sea invisible (es decir, que ocupe el espacio), es posible que desee redefinir .hidden (en su CSS local, no cambie la fuente de arranque, o incluso mejor, en su archivo LESS local).
fuente
.hidden
para los elementos que desea mostrar usando javascript. Úselo en su.collapse
lugar.Advertencia:
bootstrap 3.3.0 acaba de cambiar .collapse a:
Lo cual es un cambio importante para jQuery.show () Tuve que volver a la alineación:
para continuar usando jQuery de la siguiente manera:
La única clase que pude encontrar en bootstrap 3.3.0 para aplicar solo 'display: none' es
fuente
.collapse('hide')
y en.collapse('show')
lugar de los métodos de jQuery. Puede establecer la visibilidad inicial directamente en el HTML a través de la clasecollapse
(ocultar) ocollapse in
(mostrar). Consulte getbootstrap.com/javascript/#collapse .Yo tuve el mismo problema. Usé este parche:
Luego tuve otro problema, ya que mi aplicación genera nuevos elementos y los agrega / antepone. Lo que finalmente hice fue después de generar el nuevo elemento que hago:
fuente
Para mí, fue porque bootstrap está usando el
!important
truco para ocultar y ocultar la clase.Por lo tanto, no puede usar los
show()
métodos, etc.proporcionados con jquery. En su lugar, debe sobrescribir un código aún más horrible sobrescribiendo el código pirata.! important es una opción de último recurso y realmente no debería usarse en una biblioteca central como bootstrap.
fuente
Esto funciona, pero voy a probar la primera respuesta y cambiar las clases a
.collapse
.fuente