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.

¿Fue útil?

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

¿Por qué no usa toggle () ?

Por ejemplo:

function swap(sel) {
  $(sel).toggle();
} 

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top