3

我正在尝试获取将在 jquery-ui 对话框中显示的元素的宽度。

对话框设置为 display:none on load。这不允许我获得宽度。

我是否需要显示它,获取宽度并立即再次隐藏以获取宽度?还是有其他我不知道的选择?

谢谢

4

1 回答 1

2

你有两个选择:

  • 如果您的 jquery-ui 对话框必须是display:none,则获取其子项尺寸的唯一方法是 show/get_dimensions/hide。
  • 如果您可以将其设置为visibility:hidden,则无需执行任何操作:只需获取尺寸即可。

但是,将 jquery-ui 容器设置visibility:hidden为不是一件好事,因为它可能会修改系统的整个行为。display:nonejquery-ui-dialog 脚本中的某个地方可能有一个测试,使用它修改它visibility会破坏这个测试。此外,如果没有,则无法确保在 jquery-ui 的未来版本中不会有任何内容。

要使用第一个解决方案快速获取尺寸,请参阅此答案


Mootools-more Element.measure 解决方案:

Mootools 在 Mootools-more 的 Element.measure 中实现了显示/测量/隐藏技术。原始代码不适用于 jQuery,因为 Mootools 直接扩展元素而不是提供框架包装器,但您可以轻松地根据您的目的对其进行调整。

于 2012-06-10T10:37:23.863 回答