26

我正在使用 Jquery 2.0.2,但在 IE8 中出现错误:

对象不支持属性或方法 'addEventListener' jquery.min.js,第 4 行字符 6105

不知何故,除了 ie8,我的所有代码都适用于 chrome 和 firefox。

出现这些错误还导致:

属性“$”的值为 null 或未定义,不是 Function 对象

我将查询包含在我使用的其他 js 文件之上:

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>

我知道 Jquery2+ 不支持 IE8,但我不想使用较小版本的 Jquery。

4

3 回答 3

40

jQuery 2.x 已经放弃了对 IE < 9 的支持,所以如果你想支持 IE7 和 8,那么请使用最新版本的 1.x 分支——现在是1.11.0

来自jQuery

jQuery 2.x 与 jQuery 1.x 具有相同的 API,但不支持 Internet Explorer 6、7 或 8。jQuery 1.9 升级指南中的所有说明也适用于此处。由于 IE 6/7/8 仍然比较常见,我们建议使用 1.x 版本,除非您确定没有 IE 6/7/8 用户正在访问该站点。

于 2013-08-20T04:59:53.230 回答
11

就功能、错误修复等而言,jQuery 1.9 等同于 jQuery 2.0。它们都是积极开发的。

唯一的区别是删除了提供 IE 兼容性的代码,以使文件大小和执行速度更好。

如果你想根据浏览器使用不同的 jQuery 版本,你可以使用条件标签,像这样。

<!--[if !IE]> -->
    <script src="jquery-2.0.0b2.js"></script>
<!-- <![endif]-->

<!--[if IE]>
    <script src="jquery-1.9.1.js"></script>
<![endif]-->

注意语法突出显示。第一个只是两个与 script 标签同级的注释,后者是一个带有 script 标签的注释。浏览器只是遵循 DOM 解析规则,并加载/执行第一个脚本。IE 偏离并不会执行第一个,但会执行后者。

于 2013-08-20T05:02:46.120 回答
0

jQuery 2.x已放弃对 IE < 9 的支持。但是您可以在同一网页中使用多个jQuery版本。

这可以使用jQuery.noConflict()

于 2013-08-20T05:02:55.210 回答