2011-01-05 73 views
4

我有以下jQuery腳本,它實際上被Internet Explorer(7和8)忽略。它在FF和Chrome中運行正常。jQuery在IE上不起作用

<script type="text/javascript" language="javascript"> 
    $("body").addClass("newclass"); 
</script> 

這很簡單,但我不知道是什麼原因IE忽略它。知道代碼是用JAVA加載爲動態內容的(自從其他腳本工作後,這應該不成問題)。我試圖在外部文件中將tha腳本稱爲函數,但是也沒有任何反應。任何人都可以幫助我瞭解我的錯誤在哪裏?或者幫我理解IE?

+2

文檔中的哪個位置正在運行?在頭上? – 2011-01-05 13:00:32

+0

聽起來不會太瘋狂,但也許IE有一個動態添加類到身體標記的錯誤...也許這將有助於:http://stackoverflow.com/questions/2018001/how-can-i-添加-A級到中體標籤的使用,jquery的 – JKirchartz 2011-01-05 13:04:39

回答

8

或者,也許在文檔的「準備」事件會更好

$(document).ready(function() { 
    $('body').addClass('newclass'); 
}); 
0

我敢肯定,你將有問題的Firefox和Chrome,以及如果這是問題,但嘗試

$(function() { 
    $('body').addClass('newclass'); 
}); 

只是要確保文件被加載後,它被調用。也許IE需要這個。

0

把它包在$(document).ready(function(){ ... });

這樣,一旦頁面滿載jQuery將只運行它。

如果你不這樣做,代碼將盡快執行,這可能是在DOM已經加載之前,所以你可能沒有一個body元素來添加類。

事實上,一些瀏覽器的工作和其他並不意味着不同的瀏覽器(a)以不同的速度加載頁面,和/或(b)以不同的順序執行初始加載任務。但你不應該擔心這一點。只需撥打$.ready(),它將由JQuery以正確的順序完成。