Safari возвращает неверную ширину с помощью jQuery - PullRequest
0 голосов
/ 01 июня 2009

Вот проблемная часть моего jQuery

var tickerWidth = 0;
var padding = 10;
firstList.find('li').each(function() {

            $(this).append(' —');
            tickerWidth += $(this).width() + padding;  

           $('body').prepend($(this).width() + '<br />');

        });

firstList - это переменная, которая содержит элемент ul. Когда я запускаю это в Firefox, я правильно вычисляю ширину и печатаю ее на своей странице. Тем не менее, в Safari, я получаю ширину гораздо уже - примерно такую ​​ширину, если бы &mdash; не было вставлено ... это какое-то состояние гонки?

Есть ли способ с этим бороться? Возможно, сначала переберите и вставьте html-сущность, а затем снова переберите, чтобы вычислить ширину?

Спасибо

EDIT

Сначала я прошел цикл, вставил html-сущность, а затем сделал еще один цикл, но значения по-прежнему неверны ...

Я также пытался outerWidth(), но это не помогло.

1 Ответ

1 голос
/ 01 июня 2009

Хорошо, у меня есть это, чтобы вычислить это правильно, хотя это немного уродливо.

Вместо append() объекта, я вставляю его так:

        $(this).html($(this).html() + ' &mdash;');

Это отлично работает.

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