2009-08-02 46 views
1

我有一段代码在窗口大小上运行。我正在拉动输入文本元素的widthouterWidthWebKit宽度未更新?

这个过程在每个浏览器工作正常,但WebKit,他返回从outerWidth正确的结果,但width结果不会改变从上放入原件。

这是我的脚本实际输出控制台调整浏览器窗口(这是浏览器,但在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 2009-08-02 16:58:03

回答

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版本? – 2009-08-02 17:09:02