2010-07-08 24 views
0

此代碼工作正常在FF,鉻& Safari瀏覽器,但IE 8是扔幾個無效的參數錯誤,當我運行它:jQuery的,IE 8無效的參數錯誤

<script type="text/javascript"> 

    $(window).load(function() { 
     $('div .box').each(function() { 
      $(this).width($(this).find('img').width()); 
     }); 
    }); 

</script> 

You can see it in context here: 我的HTML/CSS技巧是或多或少一塵不染,但我幾乎無法用jquery/javascript。我已經搜索,但無法處理錯誤是什麼以及如何解決它。任何幫助不勝感激。

謝謝。

+0

你試過用'$(document).ready'替換'$(window).load'嗎? – 2010-07-08 21:05:53

+0

如果您在開發過程中使用完整版本的腳本文件,它可能會有所幫助,因爲它們傾向於提供更好的錯誤消息,或者至少闖入可以輕鬆調試的代碼。 – redsquare 2010-07-08 21:31:22

+0

@詹姆斯,感謝您的輸入,我需要使用前者,因爲我需要在找到寬度之前加載圖像。 – theothersimon 2010-07-08 21:35:07

回答

2

代碼「$(本).find( 'img')「在所有情況下都沒有找到圖像。嘗試:

$(window).load(function() { 
    $('div .box').each(function() { 
    var imageJQObject = $(this).find('img'); 
    if(imageJQObject.length > 0) { 
     $(this).width(imageJQObject.width()); 
    } 
    }); 
}); 
+0

+1,打它的頭 - 即不喜歡'nullpx' – redsquare 2010-07-08 21:27:31

+0

喬希,我認爲你破解它。謝啦。 3個無效參數,3個沒有imgs的框。這就說得通了。您編輯的代碼完美工作。有什麼我需要知道嗎? – theothersimon 2010-07-08 21:33:06

+0

不是真的「if(imageJQObject.length> 0)」只是在對imageJQObject進行操作之前檢查是否存在對象。如果imageJQObject爲空並且將寬度設置爲null是不好的,那麼「imageJQObject.width()」代碼將返回null。 – JoshNaro 2010-07-13 17:52:24

0

有沒有關於異常的其他信息,比如它是哪一行?我感覺到圖像的寬度沒有找到,因此您將空間設置爲this的寬度。嘗試用100之類的東西代替img寬度,看看它是否仍然拋出。在你的頁面上的標記

+0

嗨Darki Z,感謝您的輸入。 line 116 char 165 of jquery js顯然。 要替換這個值,我喜歡這樣嗎? '\t $(窗口).load(函數(){ \t \t \t $( 'DIV .box的')。每個(函數(){ \t \t \t $( '100')。寬度($(此).find( 'IMG')寬度()); \t \t \t}); \t \t \t});' 如果這是正確的,那麼你也是正確的。有解決方案嗎? – theothersimon 2010-07-08 21:22:03

0

看,你應該有

$(window).load(function() { 
    $('div.box').each(function() { 
     $(this).width($(this).find('img').width()); 
    }); 
}); 

通知div.box之間缺少空間。如果單獨寫出來,這意味着你正在尋找所有box這是div兒童類的元素,而沒有空間,發現所有的div帶班box

+0

謝謝。好點,雖然我認爲喬希下面已經破解了它。 – theothersimon 2010-07-08 21:33:48