outerWidth()在隐藏Element时返回不同的值

时间:2015-07-22 17:16:17

标签: javascript html css jquery-ui jquery-ui-multiselect

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

我遇到的一个问题是,刷新控件后主控制有点太宽。查看代码,使用以下命令设置宽度:

var width = this.element.outerWidth();

this.element指的是我的原始<select>控件,该控件已被jQuery UI MultiSelect Widget隐藏。

解决这个问题,我可以看到outerWidth()在隐藏<select>元素时返回424,当它可见时返回406。 (请注意,width()在隐藏元素时也会返回更大的值。)

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

修改

我创建了一个jsFiddle来证明这一点。

1 个答案:

答案 0 :(得分:0)

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

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

这里是您需要的CSS。别忘了把position:relative放在div包装器上。

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