我正在尝试用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中它出现为“函数”。真的不知道是什么造成了这个。
答案 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)
答案 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。