2013-07-31 3 views
0

토글 상태를 확인하고 싶습니다. 브라우저의 콘솔 로그를 확인할 때 표시되는 값은 true이고 false로 변경되지 않습니다.토글 상태 확인

왜 이런 일이 발생합니까? 어떻게 해결할 수 있습니까?


<html> 
<head> 
<script src='~/Scripts/jquery-1.4.1.min.js' type="text/javascript"></script> 

<script type="text/javascript"> 
     $(function() { 

      $('#divUpdateForm').click(function() { 

       $('#divUpdateContent').slideToggle(); 

       console.log($('#divUpdateContent').is(":visible")); 

      }); 
     }); 
</script> 
</head> 
<body> 
<div id="divUpdateForm" runat="server" class="panel" >Update panel state</div> 

<div id="divUpdateContent" runat="server"> 
... my content 
</div> 
</body> 
</html> 
당신은 슬라이드 동안 요소를 밀어 전에 확인해야

답변

0

, 요소가 항상 볼 수 있습니다 :

$(function() { 
    $('#divUpdateForm').click(function() { 
     var v = $('#divUpdateContent').is(":visible") 


     $('#divUpdateContent').slideToggle(); 

     // note that the variable v is also accessible here ? 
     console.log(v) 
    }); 
}); 

FIDDLE

+0

하지만 됐나 (": 보이는")를 테스트 할 수있는 방법 후 .slideToggle() 함수 슬라이드가 완료 될 때까지 기다린 후 뭔가를 할 거라면 –

+0

, 당신은 그것을 할 콜백은 팔래시의 답변과 비슷하지만, 체크가 끝나기 전에 요소를 슬라이드하는 데 0.6 초 정도 걸릴 것입니다. – adeneo

+0

잘하셨습니다, 정말 고마워요. –

1

당신은 토글 상태를 확인하실 수 있습니다 전환이 완료되면 callback 같은 기능 :

$('#divUpdateForm').click(function() { 

    $('#divUpdateContent').slideToggle(function() { 

     // Animation complete. 
     if ($(this).is(":visible")) { 
      console.log($(this).is(":visible")); 
     } else { 
      console.log($(this).is(":visible")); 
     } 
    }); 
}); 

FIDDLE DEMO

+0

잘 했어, 정말 고마워. –