2012-01-05 50 views
2

所以我添加了一點jQuery,現在當我嘗試加載我的頁面時,IE很難崩潰。其他瀏覽器似乎很好。 IE的行爲與我在過去意外創建一個無限循環的方式相同,但由於它不會導致其他瀏覽器出現問題,所以我對於實際的原因有些困惑。我在做什麼讓IE很生氣?

$(window).resize(function(){ 
sizeOfResize = $('#main').width()*.9; 
$('#news p').width(sizeOfResize); 
}) 
+3

您是否嘗試收集sizeOfResize? IE可能不喜歡尺寸的小數? – jValdron 2012-01-05 17:58:05

+1

設置'width()'可能會記得另一個'resize'事件 - 無限循環。 – 2012-01-05 17:58:40

+0

@BradChristie - 我也這麼認爲,但調整大小的回調是在'window'上,所以對小孩的大小調整不應該再次觸發它。 – 2012-01-05 17:59:45

回答

3

兩件事我注意到 - 這可能會或可能不會是這樣。正如我們所有人評論的那樣,IE無需做太多就會生氣。

無論如何,要點。 在您的示例代碼中,函數末尾沒有分號。我不知道這是否會導致IE生氣或不,但它是值得一試。 IE對逗號和分號非常敏感,並且不像其他瀏覽器那樣至少包容。

如果上述不起作用,看看它是否會採取除.9以外的數字 - 也許嘗試一個整數。我在想它可能不喜歡這個。在.9中 - 如果是這樣的話,你將不得不改變你如何做數學。

1

不是一個直接的答案,但通常我測試我的代碼的方式是從簡單的警報開始,並得到更復雜。例如,可以嘗試用此代碼:

$(window).resize(function(){ 
    alert("TEST"); 
}) 

如果不打破它,然後添加你的原始樣本的下一個部分:

$(window).resize(function(){ 
sizeOfResize = $('#main').width()*.9; 
alert("TEST"); 
}) 

如果不打破它,添加最後一位:

$(window).resize(function(){ 
sizeOfResize = $('#main').width()*.9; 
$('#news p').width(sizeOfResize); 
    alert("test"); 
}) 

這不會解決您的問題,但它應指向打破它的特定行代碼。

這裏有一個類似的問題和答案,以及:

Cross-browser window resize event - JavaScript/jQuery

希望幫助