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