在显示内部获取元素的大小:none parent

时间:2012-06-10 10:10:43

标签: jquery width element

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

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

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

由于

1 个答案:

答案 0 :(得分:2)

您有两种选择:

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

但是,将jquery-ui容器设置为visibility:hidden并不是一件好事,因为它可以修改系统的整个行为。在jquery-ui-dialog脚本中可能会对display:none进行测试,并使用visibility进行修改会破坏此测试。另外,如果没有,没有什么可以确保jquery-ui的未来版本中没有任何版本。

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


Mootools-more Element.measure解决方案:

Mootools在Mootools-more的Element.measure中实现了show / measure / hide技术。 raw code不能与jQuery一起使用,因为Mootools直接扩展元素而不是提供框架包装,但是你可以很容易地根据你的目的进行调整。