8

Необработанная ошибка ReferenceError: $ не определен?

5

Почему этот код выдает ошибку

Uncaught ReferenceError: $ is not defined

в то время как раньше он работал нормально?

$(document).ready(function() {
  $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
  $('#featuredvid > ul').tabs();
});

В результате вкладки больше не закрываются.

jQuery подключен в заголовке:

<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>

5 ответ(ов)

8

Вы должны разместить ссылки на скрипты jQuery в начале. Это важно, чтобы убедиться, что jQuery загружен перед другими скриптами, которые могут его использовать. Вот правильный порядок:

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script>
<script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>

В этом случае jquery-1.2.6.min.js загружается первым, что позволяет остальным скриптам, включая jquery-ui-personalized-1.5.2.packed.js и sprinkle.js, использовать функции jQuery.

3

Вы вызываете функцию ready до того, как jQuery был подключен. Убедитесь, что вы сначала подключили jQuery, а затем вызываете эту функцию.

1

Вот что помогло мне решить проблему. Изначально я зашел в Google и скопировал предложенный фрагмент кода для jQuery с их страницы CDN:

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

В этом фрагменте отсутствует HTTP: или HTTPS: в атрибуте src, но моему браузеру, Firefox, это было необходимо, поэтому я изменил его на:

правка: это также сработало для Google Chrome

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

После этого все заработало.

0

Если ваш собственный скрипт загружается до того, как плагин jQuery загружен в браузер, то может возникнуть подобная проблема. Поэтому всегда размещайте ваш собственный код JavaScript или jQuery после подключения плагина jQuery. Решение в следующем:

Сначала добавьте ссылку на файл jQuery, размещённый на GoogleApis, или загрузите локальную версию jQuery с сайта http://jquery.com/download/ и разместите его на своём сервере:

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

или любой другой плагин для jQuery. Затем добавьте ссылку на ваш собственный скрипт или вставьте его код:

<script src="js/custom.js" type="text/javascript"></script>

Таким образом, вы гарантируете, что jQuery и его плагины будут загружены до вашего скрипта, что предотвратит возможные конфликты и ошибки.

0

В вашем случае, проблема была в том, что вы подключали ваш .js файл перед скриптом jQuery. Переместив подключение вашего .js файла после подключения скрипта jQuery, вы решили свою проблему. Правильная последовательность подключения скриптов должна быть следующей:

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="exponential.js"></script>

Таким образом, убедитесь, что все зависимости загружаются перед теми скриптами, которые их используют, чтобы избежать ошибок.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь