¿Qué estoy mejor haciendo? .hide()
es más rápido que escribir .css("display", "none")
, pero ¿cuál es la diferencia y qué le están haciendo realmente al elemento HTML?
153
Desde la página jQuery sobre .hide () :
"Los elementos coincidentes se ocultarán inmediatamente, sin animación. Esto es más o menos equivalente a llamar a .css ('display', 'none'), excepto que el valor de la propiedad de visualización se guarda en la caché de datos de jQuery para que la visualización pueda más tarde se restaurará a su valor inicial. Si un elemento tiene un valor de visualización en línea, luego se oculta y se muestra, una vez más se mostrará en línea ".
Entonces, si es importante que pueda volver al valor anterior de display
, será mejor que lo use hide()
porque así se recuerda el estado anterior. Aparte de eso no hay diferencia.
.hide()
almacena la propiedad anteriordisplay
justo antes de establecerlanone
, por lo que si no fuera ladisplay
propiedad estándar para el elemento que es un poco más seguro,.show()
usará esa propiedad almacenada como a qué volver. Entonces ... hace un trabajo extra, pero a menos que esté haciendo toneladas de elementos, la diferencia de velocidad debería ser insignificante.fuente
Mirando el código jQuery, esto es lo que sucede:
fuente
Ellos son la misma cosa.
.hide()
llama a una función jQuery y le permite agregarle una función de devolución de llamada. Entonces, con.hide()
usted puede agregar una animación, por ejemplo..css("display","none")
cambia el atributo del elemento adisplay:none
. Es lo mismo que si haces lo siguiente en JavaScript:La
.hide()
función obviamente tarda más tiempo en ejecutarse, ya que comprueba las funciones de devolución de llamada, velocidad, etc.fuente
Usar ambos es una buena respuesta; No es una cuestión de uno u otro.
La ventaja de usar ambos es que el CSS ocultará el elemento inmediatamente cuando se cargue la página. JQuery .hide mostrará el elemento durante un cuarto de segundo y luego lo ocultará.
En el caso en que deseamos que el elemento no se muestre cuando se carga la página, podemos usar CSS y establecer display: none y usar jQuery .hide (). Si planeamos alternar el elemento, podemos usar jQuery alternar.
fuente
Ambos hacen lo mismo en todos los navegadores, AFAIK. Marcado en Chrome y Firefox, ambos se agregan
display:none
alstyle
atributo del elemento.fuente
Vea que no hay diferencia si usa el método básico de ocultar. Pero jquery proporciona varios métodos de ocultación que dan efectos al elemento. Consulte el siguiente enlace para obtener una explicación detallada: Efectos para Ocultar en Jquery
fuente