我坚持用下面的代码:又一个“切换可见性”问题
我想切换一些文本使用隐藏/可见。
我使用JavaScript函数来动态文本添加到页面中,这就是为什么我用.live ...
我可以切换为隐藏,但不可见(如果($(“#1”) .is(':hidden'))永远不会是真的)。
赞赏:-)
我坚持用下面的代码:又一个“切换可见性”问题
我想切换一些文本使用隐藏/可见。
我使用JavaScript函数来动态文本添加到页面中,这就是为什么我用.live ...
我可以切换为隐藏,但不可见(如果($(“#1”) .is(':hidden'))永远不会是真的)。
赞赏:-)
,
元素与visibility:hidden的被认为是可见的,因为他们仍然在布局消费空间
所以你最好检查价值。
if ($('#1').css('visibility')==='hidden')
或使用其他方法
该问题的任何帮助,与visibility:hidden
为可见的:hidden
伪选择对待元素,因为他们仍然占用空间在页面上。从jQuery文档:
元素与visibility:hidden的或不透明度:0被认为是 可见的,因为他们仍然在消耗布局空间。
相反,你可以检查CSS属性本身的价值:
if($('#1').css("visibility") === "hidden") {
$('#1').css('visibility','visible');
}
else {
$('#1').css('visibility','hidden');
}
谢谢您的回答。自从他第一次接受Einacio的回答后,我无法赞赏你,因为这个帐户是新的,但也许别人会! – RegexCommander
所有:hidden
选择的首先是不适合你:
元素与visibility:hidden的或不透明:0被认为是可见的,因为它们仍然占用布局空间。
您可以使用:visible
选择,但它的工作原理,只有当要素无形和display:none
。在你的情况下,你需要检查css属性:
另外,请注意,visibility:hidden
保留元素的空间,display:none
- 不是;
如果您不需要预留空间为它我建议使用:
$('#text').click(function() {
$('#2').toggle();
});
':隐藏'也检查元素的高度宽度为0:或显示:无 – Einacio
感谢您的补充,我已更新答案 – Samich
预留空间:隐藏是故意为我的应用程序,谢谢! – RegexCommander
啊谢谢!我发现布局中的空间仍然消耗殆尽,但没有想到要检查这个值!我将在稍后尝试并接受! – RegexCommander
非常感谢! – RegexCommander