所以我添加了一點jQuery,現在當我嘗試加載我的頁面時,IE很難崩潰。其他瀏覽器似乎很好。 IE的行爲與我在過去意外創建一個無限循環的方式相同,但由於它不會導致其他瀏覽器出現問題,所以我對於實際的原因有些困惑。我在做什麼讓IE很生氣?
$(window).resize(function(){
sizeOfResize = $('#main').width()*.9;
$('#news p').width(sizeOfResize);
})
所以我添加了一點jQuery,現在當我嘗試加載我的頁面時,IE很難崩潰。其他瀏覽器似乎很好。 IE的行爲與我在過去意外創建一個無限循環的方式相同,但由於它不會導致其他瀏覽器出現問題,所以我對於實際的原因有些困惑。我在做什麼讓IE很生氣?
$(window).resize(function(){
sizeOfResize = $('#main').width()*.9;
$('#news p').width(sizeOfResize);
})
兩件事我注意到 - 這可能會或可能不會是這樣。正如我們所有人評論的那樣,IE無需做太多就會生氣。
無論如何,要點。 在您的示例代碼中,函數末尾沒有分號。我不知道這是否會導致IE生氣或不,但它是值得一試。 IE對逗號和分號非常敏感,並且不像其他瀏覽器那樣至少包容。
如果上述不起作用,看看它是否會採取除.9以外的數字 - 也許嘗試一個整數。我在想它可能不喜歡這個。在.9中 - 如果是這樣的話,你將不得不改變你如何做數學。
不是一個直接的答案,但通常我測試我的代碼的方式是從簡單的警報開始,並得到更復雜。例如,可以嘗試用此代碼:
$(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
希望幫助
您是否嘗試收集sizeOfResize? IE可能不喜歡尺寸的小數? – jValdron 2012-01-05 17:58:05
設置'width()'可能會記得另一個'resize'事件 - 無限循環。 – 2012-01-05 17:58:40
@BradChristie - 我也這麼認爲,但調整大小的回調是在'window'上,所以對小孩的大小調整不應該再次觸發它。 – 2012-01-05 17:59:45