Pergunta

Prefácio: eu tenho o jQuery e a interface do usuário do jQuery incluídos em uma página.

Eu tenho essa função definida:

    function swap(sel) {
        if (1 == 1) {
           $(sel).hide('drop',{direction:'left'});
        }
    }

Como consertar a parte (1 == 1) para testar para ver se o elemento já está oculto e depois trazê -lo de volta, se for. Tenho certeza de que isso é fácil, mas sou novo no JQuery.

Foi útil?

Solução

Se você não gosta toggle, então isso pode ajudá -lo:

function swap(sel) {
  if($(sel).is(':visible')) {
    $(sel).hide('drop',{direction:'left'});
  } else {
    $(sel).show('drop',{direction:'left'});
  }
}

Outras dicas

Por que você não usa alternar() ?

Por exemplo:

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

Talvez $(sel).toggle(); é o que você está procurando? Essa é a melhor maneira de alternar a visibilidade de um elemento.

Como os outros resposta disseram, toggle() é a melhor solução. No entanto, se, por algum motivo, você não pode/não quiser usar alternar, e se o seu seletor for apenas para um elemento:

function swap(sel) {
    if ($(sel).is(':visible')) {  // Is this element visible?
       $(sel).hide('drop',{direction:'left'});
    }
}

Embargo: O: verificação visível retornará um falso positivo se o elemento ou qualquer um de seus pais for :hidden. Se isso for importante para você, você pode querer Confira esta solução que tenta verificar se isso também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top