即使我刚刚执行了显示所有其他具有相同后缀的div的代码,也遇到了一个div被隐藏的情况: $("[id$='-input-container']").show()
无论如何,一个特定的div仍然隐藏:$("#single-colorRange-color-input-container")
。我以为它可能在代码的后面某个地方被隐藏了,但是没有-调用后,$inputContainers.show()
我立即添加了如下的日志记录(该debugger
语句停止了所有后续执行):
console.log($("#single-colorRange-color-input-container").css('display'));
$inputContainers.show();
console.log($("#single-colorRange-color-input-container").css('display'));
console.log($("#single-colorRange-color-input-container")[0].hidden);
console.log($("#single-colorRange-color-input-container").is(':hidden'));
debugger;
首先none
将其记录为css / display值,然后.show()
再调用。这是预期的。
然后block
在.show()
调用之后记录为css / display值。这是预期的。
然后false
将其记录为hidden
结果集的第一个(唯一)元素的属性。这是预期的。
然后true
记录为调用的结果.is(':hidden')
。这是出乎意料的。
如何.css('display')
阻止,[0].hidden
错误和.is(':hidden')
真实?尽管调用了.show()
,实际上div确实/仍然是隐藏的,并且如果有一些合理的解释,对这一个div添加特殊逻辑对我来说似乎很荒谬。
根据jQuery文档,对于以下任何一种情况,隐藏的选择器都可以返回true
因为隐藏是一个非常简单的布尔值,并且显示是块,所以我想这是由于后三个值之一,特别是最后一点。确保所有祖先也可见。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句