Ir para conteúdo
Fabio_Guerra

Fechar demais divs chamando função javascript dentro de outra

Recommended Posts

Olá, Pessoal

Tenho o seguinte código:

 

function abre_pa()
{
$('#pa').fadeIn(1000);
$('#tipo').fadeOut(0);
$('#opcoes').fadeOut(0);
$('#tipo_audio').fadeOut(0);
$('#ura120_gravacao').fadeOut(0);
$('#ramais').fadeOut(0);
$('#ha').fadeOut(0);
$('#definir_ha').fadeOut(0);
$('#pt').fadeOut(0);
$('#tipo_pt').fadeOut(0);
$('#opcoes_pt').fadeOut(0);
$('#tipo_audio_pt').fadeOut(0);
$('#ura121_gravacao').fadeOut(0);
$('#ramais_pt').fadeOut(0);
$('#bloqueiosn').fadeOut(0);
$('#tipo_bloqueio').fadeOut(0);
$('#tipo_audio_bloqueio').fadeOut(0);
$('#ura123_gravacao').fadeOut(0);
$('#cobertura').fadeOut(0);
$('#cobertura0800').fadeOut(0);
$('#gravacao').fadeOut(0);
$('#bloqueio_out').fadeOut(0);
}
function abre_tipo()
{
$('#pa').fadeOut(0);
$('#tipo').fadeIn(1000);
$('#opcoes').fadeOut(0);
$('#tipo_audio').fadeOut(0);
$('#ura120_gravacao').fadeOut(0);
$('#ramais').fadeOut(0);
$('#ha').fadeOut(0);
$('#definir_ha').fadeOut(0);
$('#pt').fadeOut(0);
$('#tipo_pt').fadeOut(0);
$('#opcoes_pt').fadeOut(0);
$('#tipo_audio_pt').fadeOut(0);
$('#ura121_gravacao').fadeOut(0);
$('#ramais_pt').fadeOut(0);
$('#bloqueiosn').fadeOut(0);
$('#tipo_bloqueio').fadeOut(0);
$('#tipo_audio_bloqueio').fadeOut(0);
$('#ura123_gravacao').fadeOut(0);
$('#cobertura').fadeOut(0);
$('#cobertura0800').fadeOut(0);
$('#gravacao').fadeOut(0);
$('#bloqueio_out').fadeOut(0);
}

function abre_opcoes()
{
$('#pa').fadeOut(0);
$('#tipo').fadeOut(0);
$('#opcoes').fadeIn(1000);
$('#tipo_audio').fadeOut(0);
$('#ura120_gravacao').fadeOut(0);
$('#ramais').fadeOut(0);
$('#ha').fadeOut(0);
$('#definir_ha').fadeOut(0);
$('#pt').fadeOut(0);
$('#tipo_pt').fadeOut(0);
$('#opcoes_pt').fadeOut(0);
$('#tipo_audio_pt').fadeOut(0);
$('#ura121_gravacao').fadeOut(0);
$('#ramais_pt').fadeOut(0);
$('#bloqueiosn').fadeOut(0);
$('#tipo_bloqueio').fadeOut(0);
$('#tipo_audio_bloqueio').fadeOut(0);
$('#ura123_gravacao').fadeOut(0);
$('#cobertura').fadeOut(0);
$('#cobertura0800').fadeOut(0);
$('#gravacao').fadeOut(0);
$('#bloqueio_out').fadeOut(0);
}

... e assim por diante (são 22 eventos diferentes, com 22 funções, para exibir apenas a DIV relacionada ao evento e ocultar as demais).

 

Ou seja: o código ficou muito extenso!

 

Gostaria de saber se há alguma forma de ocultar todas as DIVs de uma só vez, à exceção da que tem que ser exibida. Algo assim:

function abre_pa()
{
$('#pa').fadeIn(1000);
$('#TODAS_AS_OUTRAS').fadeOut(0);
}

 

Também pensei em criar a função fecha_todas e tentar chamá-la antes de fazer o fadeIn. Algo mais ou menos assim:

function fecha_todas()
{
$('#pa').fadeOut(0);
$('#tipo').fadeOut(0);
$('#opcoes').fadeOut(0);
$('#tipo_audio').fadeOut(0);
$('#ura120_gravacao').fadeOut(0);
$('#ramais').fadeOut(0);
$('#ha').fadeOut(0);
$('#definir_ha').fadeOut(0);
$('#pt').fadeOut(0);
$('#tipo_pt').fadeOut(0);
$('#opcoes_pt').fadeOut(0);
$('#tipo_audio_pt').fadeOut(0);
$('#ura121_gravacao').fadeOut(0);
$('#ramais_pt').fadeOut(0);
$('#bloqueiosn').fadeOut(0);
$('#tipo_bloqueio').fadeOut(0);
$('#tipo_audio_bloqueio').fadeOut(0);
$('#ura123_gravacao').fadeOut(0);
$('#cobertura').fadeOut(0);
$('#cobertura0800').fadeOut(0);
$('#gravacao').fadeOut(0);
$('#bloqueio_out').fadeOut(0);
}
function abre_pa()
{

function fecha_todas();

$('#pa').fadeIn(1000);
}

Alguém poderia me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, é possível.

apenas use classes.

 

e em vez de declarar funções iguais, receba por parâmetro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso alguém precise, atribui a classe "diva" a todas as 22 divis e o código ficou assim:

function abre_pa()
{
$('.diva').fadeOut(0);

$('#pa').fadeIn(1000);
}
function abre_tipo()
{
$('.diva').fadeOut(0);

$('#tipo').fadeIn(1000);
}

function abre_opcoes()
{
$('.diva').fadeOut(0);

$('#opcoes').fadeIn(1000);
}

 

Obs: o fadeOut ficou antes do fadeIn, para que a função execute primeiro o fadeOut e, depois, o fadeIn

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.