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/
我正在尝试对 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/