Aunque esta pregunta ha sido respondida muchas veces antes, pensé agregarle una respuesta más completa y sólida para futuros usuarios. La respuesta principal resuelve el problema, pero creo que puede ser mejor conocer / comprender algunas de las diversas formas de mostrar / ocultar cosas.
.
Cambio de pantalla usando css ()
Esta es la forma en que solía hacerlo hasta que encontré algunas de estas otras formas.
Javascript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
Pros:
- Se esconde y se esconde. Eso es todo.
Contras:
- Si usa el atributo "display" para otra cosa, tendrá que codificar el valor de lo que era antes de ocultarse. Por lo tanto, si tuviera "en línea", tendría que hacerlo de lo
$("#element_to_hid").css("display", "inline");contrario, volverá a "bloquear" o cualquier otra cosa en la que se verá obligado.
- Se presta a errores tipográficos.
Ejemplo: https://jsfiddle.net/4chd6e5r/1/
.
Cambio de visualización usando addClass () / removeClass ()
Al configurar el ejemplo para este, en realidad me encontré con algunos defectos en este método que lo hacen muy poco confiable.
CSS / Javascript:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
Pros:
- Se esconde ... a veces. Consulte la p1 en el ejemplo.
- Después de mostrar, volverá a utilizar el valor de visualización anterior ... a veces. Consulte la p1 en el ejemplo.
- Si quieres agarrar todos los objetos ocultos, solo tienes que hacerlo
$(".hidden").
Contras:
- No se oculta si el valor de visualización se configuró directamente en el html. Consulte la p2 en el ejemplo.
- No se oculta si la pantalla está configurada en javascript usando css (). Consulte la p3 en el ejemplo.
- Un poco más de código porque tienes que definir un atributo css.
Ejemplo: https://jsfiddle.net/476oha8t/8/
.
Cambio de pantalla usando alternar ()
Javascript:
$("element_to_hide").toggle(); // To hide and to unhide
Pros:
- Siempre funciona
- Le permite no tener que preocuparse de qué estado era antes de cambiar. El uso obvio para esto es para un ... botón de alternar.
- Corto y simple.
Contras:
- Si necesita saber a qué estado está cambiando para hacer algo que no esté directamente relacionado, deberá agregar más código (una instrucción if) para averiguar en qué estado se encuentra.
- Similar a la estafa anterior, si desea ejecutar un conjunto de instrucciones que contiene el alternar () con el propósito de ocultar, pero no sabe si ya está oculto, debe agregar un cheque (una declaración if) para averiguarlo primero y si ya está oculto, omita. Consulte la p1 del ejemplo.
- En relación con las 2 desventajas anteriores, usar toggle () para algo que se oculta o muestra específicamente, puede ser confuso para los demás que leen su código, ya que no saben de qué manera alternarán.
Ejemplo: https://jsfiddle.net/cxcawkyk/1/
.
Cambiar la visualización usando hide () / show ()
Javascript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
Pros:
- Siempre funciona
- Después de mostrar, volverá a usar el valor de visualización anterior.
- Siempre sabrá a qué estado está cambiando para que:
- no es necesario agregar declaraciones if para verificar la visibilidad antes de cambiar estados si el estado importa.
- no confundirá a otras personas que lean su código en cuanto a qué estado está cambiando si, si el estado importa.
- Intuitivo.
Contras:
- Si desea imitar una palanca, primero deberá verificar el estado y luego cambiar al otro estado. Utilice toggle () en su lugar para estos. Consulte la p2 del ejemplo.
Ejemplo: https://jsfiddle.net/k0ukhmfL/
.
En general, diría que lo mejor es hide () / show () a menos que lo necesites específicamente para alternar. Espero que hayas encontrado útil esta información.
return falseenonclick?