我的代碼:jquery的CSS功能不用於檢測顯示元件的工作/隱藏
<script type="text/javascript">
$(function(){
$("body").click(function(){
$("ul").toggle("slow");
var b = $("ul").css("display");
console.log("ul display :"+b);// unfortunately,always returns block!
});
});
</script>
</head>
<body>
<nav>
<ul>
<li><a href="/">home</a></li>
<li><a href="/archive/">Archive</a></li>
<li><a href="/about/">About</a></li>
<li><a href="/contact/">Contact</a></li>
</ul>
</nav>
</body>
</html>
我使用jquery肘節()函數來顯示/隱藏。但toggle()不會改變css值,所以你不能使用.css(「display」)函數來檢查顯示的狀態。甚至隱藏元素,.css(「display」)總是返回「block」,如果您的原始CSS表定義「顯示:塊;」。
如何檢測顯示或隱藏元素的顯示狀態?或者,您是否知道如何更改toggle()無法實現的實際顯示值?
注意:由於前面的代碼是測試代碼,並且在實際代碼中,toggle()和.css(「display」)具有不同的功能並且執行時間完全不同,所以不能使用下面顯示的方式。
$("ul").toggle("slow", function() {
...
}
元素'.is(':visible')' –
Dupe:http://stackoverflow.com/questions/178325/testing-if-something-is-hidden-with-jquery – Dan
var c = $(「ul」) 。是( 「:可見」); console.log(「ul isvisible:」+ c); //不幸的是,**總是在切換後返回true !! **。 –