outerWidth() Возвращает другое значение, когда элемент скрыт
Я пытаюсь внести некоторые изменения в JQuery UI MultiSelect Widget.
Одна из проблем, с которыми я сталкиваюсь, заключается в том, что основной элемент управления становится слишком широким после обновления элемента управления. Глядя на код, ширина устанавливается с помощью:
var width = this.element.outerWidth();
куда this.element
относится к моему оригиналу <select>
элемент управления, который был скрыт виджетом MultiSelect пользовательского интерфейса jQuery.
Играя с этим, я вижу, что outerWidth()
возвращает 424, когда мой <select>
элемент скрыт, и он возвращает 406, когда он виден. (Обратите внимание, что width()
также возвращает большее значение, когда элемент скрыт.)
Кто-нибудь знает, почему или как ширина будет меняться в зависимости от того, виден ли элемент управления? Значение, возвращаемое, когда элемент управления видим, кажется правильным значением.
РЕДАКТИРОВАТЬ:
Я создал jsFiddle, чтобы продемонстрировать это.
1 ответ
Вы не можете получить ширину display:none;
элемент.
Вы должны скрыть это с Position:absolute;
а также left:-999999px;
,
Здесь CSS вам нужно. Не забудьте поставить position:relative
на обёртке div.
JsFiddle: http://jsfiddle.net/7xqk01oa/3/