jQuery UI: una función de intercambio que oculta y muestra elementos por selector
-
03-07-2019 - |
Pregunta
Prefacio: Tengo jQuery y jQuery UI incluidos en una página.
Tengo esta función definida:
function swap(sel) {
if (1 == 1) {
$(sel).hide('drop',{direction:'left'});
}
}
¿Cómo arreglo la parte (1 == 1) para probar si el elemento ya está oculto y luego devolverlo si está? Estoy seguro de que esto es fácil, pero soy nuevo en jQuery.
Solución
Si no te gusta toggle
, esto puede ayudarte:
function swap(sel) {
if($(sel).is(':visible')) {
$(sel).hide('drop',{direction:'left'});
} else {
$(sel).show('drop',{direction:'left'});
}
}
Otros consejos
Quizás $ (sel) .toggle ();
es lo que está buscando? Esa es la mejor manera de alternar la visibilidad de un elemento.
Como han dicho los demás respondedores, toggle ()
es la mejor solución. Sin embargo, si por alguna razón no puedes / no quieres usar el interruptor, y si tu selector es para un solo elemento:
function swap(sel) {
if ($(sel).is(':visible')) { // Is this element visible?
$(sel).hide('drop',{direction:'left'});
}
}
Advertencia: La verificación visible devolverá un falso positivo si el elemento o cualquiera de sus padres están : hidden
. Si eso es importante para usted, puede querer echa un vistazo a esta solución que también intenta comprobar si hay algo de eso.