Неправильная ширина окна JQuery в Chrome - PullRequest
7 голосов
/ 20 мая 2009

Я создал плагин, который я сократил до самого плагина (т. Е. Без функциональности, только структура) для устранения этой проблемы, и он все еще существует. Он имеет дело с изменением размера div и основывает это на ширине документа.

Проблема заключается в том, что ширина документов, представленная в отчете, уменьшается на 17px по сравнению с ее фактической шириной и, таким образом, неправильно определяет размер div.

Я поставил оповещения, чтобы узнать, где возникает проблема: Перед «готовой» функцией: 1780 пикселей (правильная ширина) Внутри «готовой» функции: 1763px Внутри плагина: 1763 пикселей (все значения, возвращенные из «document.width» и «$ (document) .width ()» с одинаковыми результатами)

Это происходит только в Chrome и все еще остается даже после того, как плагин практически ничего не изменил.

Есть мысли о том, почему это происходит?

Ответы [ 2 ]

3 голосов
/ 08 марта 2011

взято из документации jQuery :

В то время как JavaScript обеспечивает загрузку событие для выполнения кода, когда страница рендеринг, это событие не получает срабатывает, пока все активы, такие как изображения были полностью получены. В большинстве случаев скрипт можно запустить как только иерархия DOM была полностью построен. Обработчик прошел к .ready () гарантированно будет выполняется после того, как DOM готов, так обычно это лучшее место для прикрепить все остальные обработчики событий и запустить другой код JQuery. Когда используешь скрипты, которые полагаются на ценность CSS свойства стиля, важно ссылки на внешние таблицы стилей или вставлять элементы стиля перед ссылки на сценарии.

В тех случаях, когда код опирается на загруженный активы (например, если размеры изображения требуются), код должны быть помещены в обработчик для вместо этого загрузите событие.

вы, вероятно, должны использовать

$(window).load(function() {});

как триггерное событие

2 голосов
/ 22 января 2010

Я обнаружил, что jQuery (окно) .width () возвращает неправильное значение в Safari и Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...