2009-08-02 8 views
1

Ich habe ein Stück Code, der auf Fenstergröße läuft. Ich ziehe die width, und die outerWidth eines Eingabetextelements.WebKit Breite wird nicht aktualisiert?

Dieser Prozess funktioniert in jedem Browser gut, außer Webkit, die aus outerWidth das richtige Ergebnis liefert, sondern das Ergebnis von widthändert sich nie von der auf Last Original. Diese

ist tatsächlich Konsolenausgabe von meinem Skript, wenn das Browserfenster Ändern der Größe (Dies ist Chrome, aber das gleiche geschieht in 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 

Hat jemand erlebt, bevor? Weißt du warum es passiert? Und am wichtigsten, weißt du, wie man es umgeht? :)

Vielen Dank.

+0

Konnten Sie etwas Code bekannt geben? Ich habe gerade mit Safari 4 versucht und beide funktionieren wie erwartet. – tom

Antwort

0

Hier ist mein Testfall. Beide scheinen zu funktionieren (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

Funktioniert gut in Safari 4. Ältere jQuery-Version vielleicht? –