2013-07-31 76 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

如果你要等到幻灯片已完成,然后做一些事情,你做它回调,就像palash的回答一样,但是等待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

干得好,非常感谢。 –