jQuery не загружается, а '$' не определено в IE8 - PullRequest
5 голосов
/ 05 апреля 2011

Я пытаюсь сделать очень простую вещь с 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 Dev Toolbar и $ не определено, но в Firebug это выглядит как «функция». действительно не знаю, что вызывает это.

Ответы [ 6 ]

1 голос
/ 05 апреля 2011

Ну, я чувствую себя идиотом.Я не знаю как (я, конечно, не изменил это!), Но каким-то образом мой IE отключил JavaScript, так что неудивительно, что он не работал!Я использую FireFox только тогда, когда могу помочь.

1 голос
/ 05 апреля 2011

Я использую 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, и у меня никогда не возникало проблем с неопределенностью $.Если у вас есть плагины, я бы использовал этот шаблон, чтобы переменные были такими, какими они должны быть:

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

    // code here

})(jQuery, this, document);
0 голосов
/ 05 апреля 2011

Это прекрасно работает в моей копии Internet Explorer 8.0.7600.16385 в Windows 7.

Что-то должно быть в конфигурации вашего браузера.

0 голосов
/ 05 апреля 2011

Вам, вероятно, нужно поместить свою функцию в готовый обработчик событий, например:

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

Таким образом, весь dom был обработан до запуска вашей функции.

0 голосов
/ 05 апреля 2011

Вы можете попробовать альтернативный синтаксис для инициации, как это:

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

    })
})(jQuery)
0 голосов
/ 05 апреля 2011

Я сталкивался с этой проблемой раньше.Это может быть вызвано несколькими причинами, но самое простое решение, которое я нашел, это использование «jQuery» вместо знака доллара.

jQuery(function() { 
            alert("It works!");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...