Объект не поддерживает addEventListener IE8 в jquery
Я использую JQuery 2.0.2, и у меня есть ошибка в IE8:
Объект не поддерживает свойство или метод 'addEventListener' jquery.min.js, строка 4 символ 6105
Как-то все мои коды в порядке с хром и firefox, кроме ie8.
Получение этих ошибок также привело к:
Значение свойства '$' равно null или undefined, а не объекту Function
Я включил запрос поверх других js файлов, которые у меня есть:
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
Я знаю, что Jquery2 + не поддерживает IE8, но я не хочу использовать меньшую версию JQuery.
Ответы
Ответ 1
jQuery 2.x потерял поддержку IE < 9, поэтому, если вы хотите поддерживать IE7 и 8, используйте последнюю версию ветки 1.x - теперь 1.11.0
Из jQuery
jQuery 2.x имеет тот же API, что и jQuery 1.x, но не поддерживает Internet Explorer 6, 7 или 8. Все примечания в jQuery 1.9 Upgrade Здесь также применяется руководство. Поскольку IE 6/7/8 все еще относительно распространены, мы рекомендуем использовать версию 1.x, если вы не уверены, что IE 6/7/8 пользователи посещают сайт.
Ответ 2
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 и загружают/выполняют первый script. IE отклоняется и не будет выполнять первое, но будет выполнять последнее.
Ответ 3
jQuery 2.x
отказался от поддержки IE < 9. Однако вы можете использовать несколько версий jQuery
на той же веб-странице.
Это можно сделать, используя jQuery.noConflict()