outerWidth() Returns 元素隐藏时的不同值

outerWidth() Returns a Different Value when Element is Hidden

我正在尝试对 jQuery UI MultiSelect Widget 进行一些调整。

我遇到的一个问题是在我刷新控件后主控件有点太宽了。查看代码,宽度设置为:

var width = this.element.outerWidth();

其中this.element指的是我原来的<select>控件,已经被jQueryUIMultiSelect Widget隐藏了。

玩这个,当我的 <select> 元素隐藏时,我可以看到 outerWidth() returns 424,当它可见时,它是 returns 406。 (请注意,当元素隐藏时,width() 也会 returns 一个更大的值。)

有谁知道宽度会根据控件是否可见而改变的原因或方式?控件可见时返回的值似乎是正确的值。

编辑:

我创建了一个 jsFiddle 来演示这一点。

您无法获取 display:none; 元素的宽度。

您需要使用 Position:absolute;left:-999999px; 隐藏它。

这里是您需要的css。不要忘记将 position:relative 放在 div 包装器上。

JsFiddle : http://jsfiddle.net/7xqk01oa/3/