如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?
如果元素可见或隐藏, 我如何测试 ?
如何使用 . hide () 、.show () 或.toggle () 来切换元素的可见度 ?
如果元素可见或隐藏, 我如何测试 ?
当前回答
公平而言,问题早于这一答复的日期。
而不是批评行动, 而是帮助所有仍在问这个问题的人。
确定是否可见事物的正确方式是咨询你的视觉模型;
如果你不知道这意味着什么 那你就要踏上 探索之旅 这将使你的工作变得不那么困难
以下是模型视图模型结构概览(mvvm)。
knockoutjs 是一个具有约束力的图书馆, 它能让您在不学习整个框架的情况下尝试这些 。
这里有一些刺绣代码 和可能看不到的迪夫。
<html>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.1/knockout-min.js"></script>
<script>
var vm = {
IsDivVisible: ko.observable(true);
}
vm.toggle = function(data, event) {
// Get current visibility state for the div
var x = IsDivVisible();
// Set it to the opposite
IsDivVisible(!x);
}
ko.applyBinding(vm);
</script>
<div data-bind="visible: IsDivVisible">Peekaboo!</div>
<button data-bind="click: toggle">Toggle the div's visibility</button>
</body>
</html>
注意, 切换函数不咨询 dom 以决定 div 的可见度; 它会查询视图模型 。
其他回答
由于问题只涉及一个要素,本守则可能更适合:
// Checks CSS content for display:[none|block], ignores visibility:[true|false]
$(element).is(":visible");
// The same works with hidden
$(element).is(":hidden");
它与twern的建议相同,但适用于一个单一要素;它与jquery faq中推荐的算法相符。
我们用 jquery's is () 来检查选中元素与其它元素、 选择器或任何 jquery 对象的对比。 此方法沿 dom 元素绕行查找匹配, 满足已传递参数 。 如果匹配, 返回为真, 否则返回为假 。
:根据 jquery 文档显示的可见选择器:
它们有一个 cs 显示无值。 它们是类型 = “ 隐藏” 的形状元素。 它们宽度和高度被明确设置为 0。 祖先元素被隐藏, 因此该元素不会在页面上显示 。 具有可见度的元素: 隐藏或不透明: 0 被视为可见, 因为它们仍然在布局中消耗空间 。
在某些情况中这是有用的,在另一些情况中是没用的,因为如果你想检查元素是否可见(播放=无),忽略父母的可见度,你会发现做.css(“播放”) =“无”不仅速度更快,而且还会正确返回可见度检查。
如果您想要检查可见度而不是显示, 您应该使用: . css (“ 可见度 ” ) = “ 隐藏 ” 。
还考虑到以下补充简记:
因为 : 可见的扩展是一个缩略语, 而不是 cs 规格的一部分, 使用 : 可见 无法利用本地的 dom 查询 Electultl () 方法提供的性能增强 。 使用 : 可见 来选择元素, 首先使用纯 cs 选择器选择元素, 然后使用 . fileter (“ 可见 ” : 可见 ) 来达到最佳性能 。
另外,如果你担心性能,你应该检查一下现在你看到我... 表现/隐藏性能(2010-05-04),并使用其他方法来显示和隐藏元素。
i 将使用 cs 类. hide { 显示: 无重要;} 。
对于隐藏/显示, 我调用. addclass (" hide") /. remove class (" hide") /. remove class (" hide") 来检查可见度, 我使用. has class (" hide" ) 。
如果您不打算使用.toggle () 或. animate () 方法, 这是一个简单明了的检查/ 隐藏/ 显示元素的方法 。
但如果元素的 css 和下面一样呢?
.element{
position: absolute;left:-9999;
}
因此,对于堆叠溢出问题的答案是,如何检查元素是否在屏幕之外,也应当考虑。
$( document). ready( 函数 () { 如果 (" checkme: hidden" ) {( ) 长) {主控台. log ('hidden' ) }} } ; & lt; scrip src= "https://ajax.googleapis. com/ajax/ libs/ jquery/ 2.1.1/jquery. min. js; & gt; / strip> / specie; & lt; br> spectie: salmo salal=lt; br> form: lift;/div>