Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Celamar

toggle jQuery

Recommended Posts

Olá pessoal,

 

estou usando "fadeToggle" em uma div qualquer e preciso em determinado momento verificar se esta div esta visível ou não, mas a condição que uso sempre me retorna "visible". Fiz um alert do "display" deste elemento e esta sempre retornando "block". Alguém tem alguma idéia?

 


<td class="menu1">...</td>
<div id="lista" style="display: none">teste</div

//este esta OK
jQuery('#menu1').click(function () {
jQuery('#lista').fadeToggle();
});


if (jQuery('#lista').is(':visible')) {
alert('passou');
//apenas da "lista" funcionar corretamente (ocultar/exibir), não esta entrando aqui
}

//e neste sempre retorna block
alert(jQuery('#lista').css('display'));

 

Há alguma outra forma de verificar se está visível ou não?

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema no seu código é que você nao está usando o callback da função fadeToggle, para saber se está ou nao visivel.

O certo seria assim:

jQuery('#menu1').click(function () {
jQuery('#lista').fadeToggle(500,function(){
   	if($(this).is(":visible")){
       	alert("visivel")
   	}
   	else{
       	alert("não visivel");
	}
	});
});

 

Caso queira testar melhor, eu fiz uma função pra você =)

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
	$("button").click(function(){
		$("*").find("div").fadeToggle(500,function(){
			$(this).is(":visible") ? alert("visivel") : alert("não visivel");
		});
	});
});
</script>
</head>
<body>
<div style="background:#000;height:100px;width:100px"></div>
<button>Toggle Div</button>
</body>
</html>

 

Qualquer coisa pergunte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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