我正在尝试获取将在 jquery-ui 对话框中显示的元素的宽度。
对话框设置为 display:none on load。这不允许我获得宽度。
我是否需要显示它,获取宽度并立即再次隐藏以获取宽度?还是有其他我不知道的选择?
谢谢
你有两个选择:
display:none
,则获取其子项尺寸的唯一方法是 show/get_dimensions/hide。visibility:hidden
,则无需执行任何操作:只需获取尺寸即可。但是,将 jquery-ui 容器设置visibility:hidden
为不是一件好事,因为它可能会修改系统的整个行为。display:none
jquery-ui-dialog 脚本中的某个地方可能有一个测试,使用它修改它visibility
会破坏这个测试。此外,如果没有,则无法确保在 jquery-ui 的未来版本中不会有任何内容。
要使用第一个解决方案快速获取尺寸,请参阅此答案。
Mootools 在 Mootools-more 的 Element.measure 中实现了显示/测量/隐藏技术。原始代码不适用于 jQuery,因为 Mootools 直接扩展元素而不是提供框架包装器,但您可以轻松地根据您的目的对其进行调整。