Tengo un div con esta clase:
.news{
width:710px;
float:left;
border-bottom:1px #000000 solid;
font-weight:bold;
display:none;
}
Y me gustaría con algunos métodos jQuery eliminar esa pantalla: ninguno; (para que se muestre el div) y luego agregarlo nuevamente (para que el div se sombree).
¿Cómo puedo hacerlo? Salud
$(".news").show()
? "entonces el div se sombreará" ... ¿quieres decir que se desvanecerá?$(".news").show()
funciona! Lo mismo$(".news").hide()
!!! Gracias;)$('.news').toggle();
Respuestas:
Para ocultar el
div
o
y para mostrar el
div
:o
fuente
jQuery te proporciona:
Luego puede mostrar y ocultar fácilmente los elementos.
fuente
.show()
no se eliminadisplay: none
, sino que se colocadisplay: block
oinline
depende del elemento, y puede romper el diseño si el elemento usa undisplay
estilo inusual .element{display:none;}
en su CSS, pero en su JS, también utilíceloelement.hide()
al mismo tiempo. Esto permitirá que lashow()
función funcione.Entonces, déjame darte un código de muestra:
El enlace será el disparador para mostrar el div al hacer clic. Entonces su Javascript será:
Casi siempre es mejor dejar que jQuery maneje el estilo para ocultar y mostrar elementos.
Editar: veo que las personas de arriba recomiendan usar
.show
y.hide
para esto..toggle
le permite hacer ambas cosas con un solo efecto. Eso es genial.fuente
toggle
función. Muchas veces, si necesita hacer clic en algo y mostrarlo, también le gustaría que la funcionalidad lo oculte.En JavaScript:
En jQuery:
fuente
Use la palanca para mostrar y ocultar.
Consulte el ejemplo de trabajo en http://jsfiddle.net/jNqTa/
fuente
.toggle()
está en desuso desde jQuery 1.9.Sugeriría agregar una clase para mostrar / ocultar elementos:
y luego use .toggleClass () de jquery para mostrar / ocultar el elemento:
fuente
La única forma de eliminar un "display: none" en línea a través de css-api de jQuery es restableciéndolo con la cadena vacía (
null
NO funciona por cierto!).Según el documento de jQuery, esta es la forma general de "eliminar" una propiedad de estilo en línea establecida una vez.
$("#mydiv").css("display","");
o
$("#mydiv").css({display:""});
debería hacer el truco correctamente.
En mi humilde opinión, falta un método en jQuery que podría llamarse "mostrar" o "revelar" que, en lugar de simplemente establecer otra propiedad de estilo en línea, desarma el valor de visualización correctamente como se describió anteriormente. O tal vez
hide()
debería almacenar el valor inicial en línea yshow()
debería restaurar eso ...fuente
Las funciones .show () y .hide () de jQuery son probablemente su mejor opción.
fuente
No nos está dando mucha información, pero en general esta podría ser una solución:
fuente
$(".news").show()
y$(".news").hide()
;)Por alguna razón, alternar no funcionó para mí, y recibí el error
uncaught type error toggle is not a function
al inspeccionar el elemento en el navegador. Entonces usé el siguiente código y comenzó a funcionar para mí.Se utilizó el archivo de script jquery
jquery-2.1.3.min.js
.fuente
Si tiene muchos elementos que le gustaría
.hide()
o.show()
, va a desperdiciar muchos recursos para hacer lo que quiera, incluso si usa.hide(0)
o.show(0)
, el parámetro 0 es la duración de la animación.A diferencia de Prototype.js
.hide()
y los.show()
métodos que solo se utilizan para manipular el atributo de visualización del elemento, jQuery la implementación de es más compleja y no se recomienda para una gran cantidad de elementos.En estos casos, probablemente deberías intentar
.css('display','none')
esconderte y.css('display','')
mostrar.css('display','block')
debe evitarse, especialmente si está trabajando con elementos en línea, filas de tabla (en realidad, cualquier elemento de tabla), etc.fuente
Teniendo en cuenta el comentario de lolesque como la mejor respuesta, puede agregar un atributo o una clase para mostrar / ocultar elementos con propiedades de visualización que difieren de lo que normalmente tiene, si su sitio necesita compatibilidad con versiones anteriores, sugeriría hacer una clase y agregar / eliminar para mostrar / mostrar el elemento
Reemplace el bloque en línea con su método de visualización preferido de su elección y use jquerys addclass https://api.jquery.com/addclass/ y removeclass https://api.jquery.com/removeclass/ en lugar de mostrar / ocultar, si está al revés la compatibilidad no es problema, puedes usar atributos como este.
Y use jquerys attr () http://api.jquery.com/attr/ para mostrar y ocultar el elemento.
Cualquiera que sea el método que prefiera, podrá implementar fácilmente animaciones css3 al mostrar / ocultar elementos de esta manera
fuente
Usar
show()
anunciosdisplay:block
en lugar de losdisplay:hide
cuales podría romper cosas.Para evitar eso, puede tener una clase con propiedad
display:none
y alternar esa clase para ese elemento contoggleClass()
.Ninguna de las respuestas mencionó esto.
fuente