2009-08-02 2 views
1

У меня есть фрагмент кода, который работает при изменении размера окна. Я тяну width и outerWidth элемента ввода текста.Ширина WebKit не обновляется?

Этот процесс прекрасно работает в любом браузере, кроме Webkit, который возвращает правильный результат outerWidth, но результат от widthникогда не меняется от нагрузки на оригинал.

Это фактический выход консоли из моего сценария при изменении размера окна браузера (Это Chrome, но то же самое происходит в Safari 4):

outerWidth: 772 
width: 772 
outerWidth: 773 
width: 772 
outerWidth: 773 
width: 772 
outerWidth: 794 
width: 772 
outerWidth: 794 
width: 772 
outerWidth: 815 
width: 772 
outerWidth: 815 
width: 772 
outerWidth: 820 
width: 772 
outerWidth: 837 
width: 772 

Кто-нибудь сталкивался с этим раньше? Вы знаете, почему это происходит? И что самое важное, знаете ли вы, как это можно обойти? :)

спасибо.

+0

Не могли бы вы выслать код? Я просто пробовал с Safari 4, и оба работают так, как ожидалось. – tom

ответ

0

Вот мой тестовый пример. Оба, похоже, работают как ожидалось (Safari 4).

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    <style type="text/css"> 
    input { 
     width: 50%; 
     height: 2em; 
     font-size: 1em; 
    } 
    </style> 
</head> 
<body> 
    <p> 
    <input type="text" id="w" /> 
    </p> 
    <p> 
    <input type="text" id="ow" /> 
    </p> 
    <script type="text/javascript"> 
    function init(){ 
     $('#w').val($('#w').width()); 
     $('#ow').val($('#ow').outerWidth()); 
    } 
    $(function(){ 
     init(); 

     $(window).resize(function(){ 
     init(); 
     }); 
    }); 
    </script> 
</body> 
</html> 
+1

Отлично работает в Safari 4. Возможно, более ранняя версия jQuery? –

Смежные вопросы