jQuery没有加载,IE8中未定义'$'

时间:2011-04-05 14:59:19

标签: jquery internet-explorer-8

我正在尝试用jQuery做一个非常基本的事情,它在IE8中根本不起作用,但在Firefox,Safari和Chrome中运行良好; IE一直给我一个“预期的对象”。

有人可以帮忙吗?由于页面非常基本,我不确定是什么问题:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.2.min.js"></script>
    <script type="text/javascript">
        $(function() { 
            alert("It works!");
        });
    </script>
</head>
<body>
</body>
</html>

IE(并且只有IE)在加载代码上给出了一个错误“对象预期”。我有IE开发工具栏并且$未定义但在Firebug中它出现为“函数”。真的不知道是什么造成了这个。

6 个答案:

答案 0 :(得分:1)

我使用HTML5Boilerplate方法:

<!-- Grab Google CDN's jQuery, with a protocol relative URL; fall back to local if necessary -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
  <script>window.jQuery || document.write("<script src='js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>

修改

顺便说一句......我在IE6-IE9,Firefox,Chrome,Safari和Opera中使用它,我不会遇到$ undefined问题。如果你有插件,我会使用这种模式来确保它们应该是变量:

(function($, window, document, undefined) {

    // code here

})(jQuery, this, document);

答案 1 :(得分:1)

嗯,我觉得自己像个白痴。我不知道如何(我当然没有改变它!)但不知何故我的IE禁用了JavaScript,所以难怪它不起作用!我可以帮助它时只使用FireFox。

答案 2 :(得分:0)

之前我遇到过这个问题。它可能是由许多事情引起的,但我发现最简单的解决方案是使用“jQuery”代替美元符号。

jQuery(function() { 
            alert("It works!");
});

答案 3 :(得分:0)

您可以尝试使用其他语法进行启动:

(function($){
    $(function(){

    })
})(jQuery)

答案 4 :(得分:-1)

这个works完全适用于我在Windows 7上的Internet Explorer 8.0.7600.16385。

浏览器配置必须满足。

答案 5 :(得分:-5)

你可能需要将你的函数放在ready事件处理程序中,如下所示:

$(document).ready(function () {
   $(function() {
     alert("It works!");
   }):
});

这样就可以在函数运行之前处理整个dom。