$("[id$='-input-container']").show()
。无论如何,$("#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;
在调用.show()
之前,none
被记录为css/display值。这是预期的。
然后,在调用.show()
之后,block
被记录为css/display值。这是预期的。
然后,false
被记录为结果集中第一个(也是唯一一个)元素的hidden
属性。这是预期的。
然而,调用.is(':hidden')
却返回了true
,这是意外的。
如何解释.css('display')
的值为block
,[0].hidden
的值为false
,而.is(':hidden')
的值为true
?实际上,即使调用.show()
,该div仍然保持隐藏状态,如果没有合理的解释,为这个div添加特殊逻辑似乎是荒谬的。
debugger
可能没有停止后续执行,或者至少这是我的结论,因为我确实在随后的代码中隐藏了 div。试图关闭问题,但无法关闭,因为已经有答案了,即使它们可能不涉及我的特定情况,它们仍然似乎可以帮助某些人。 - Dexygen