2011-01-05 60 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以正确的顺序完成。