jQuery: height()/width() 和 "display:none"
在此场景中,ID 为“target”的元素" 通过 CSS 将其显示属性设置为“none”。但是,当使用 $("#target").height() 检查其高度时,会获得一个非零值。
此行为源于 jQuery 在访问隐藏元素的维度时对隐藏元素的内部处理。如果元素的 offsetWidth 为 0(被 jQuery 视为“隐藏”),则库会尝试确定其高度。
为了实现此目的,jQuery 会临时将以下属性应用于该元素:
然后使用 getWidthOrHeight(... ),根据需要添加边框/填充,并恢复原始属性。
本质上,jQuery 会谨慎地显示元素 С这发生在 UI 线程更新之前,因此用户仍然不知道该过程。
此机制使 .height()/.width() 甚至可以在隐藏元素上运行,前提是它们的父元素可见。因此,您可以调用 .height()/.width() ,而无需手动执行显示/隐藏序列,因为它是由这些方法内部处理的。
以上是为什么'jQuery.height()”返回隐藏元素的值?的详细内容。更多信息请关注PHP中文网其他相关文章!