Подтвердить что ты не робот

JQuery $.cookie не является функцией

Я пытаюсь установить cookie с помощью jQuery:

$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));

Но когда я загружаю свою страницу, я получаю сообщение об ошибке "$.cookie не является функцией". Вот что я знаю:

  • Я загрузил плагин jQuery cookie здесь.
  • Я связываюсь с jQuery и THEN плагин для файлов cookie.
  • Оба jQuery и jQuery.cookie правильно загружаются с 200 OK.

Я рассмотрел несколько других ответов (здесь и здесь и другие), к которому большинство людей предлагало переименовать файл cookie.js. Я переименовал файл cookie jquery.cookeee.js, но результаты остались прежними.

Любые идеи о том, что здесь происходит?

Если это помогает, я создаю веб-приложение в MVC 4.

4b9b3361

Ответ 1

Если кто-то еще сталкивается с проблемой $.cookie is not a function, вот все возможные проблемы/решения, с которыми я столкнулся:

  • Плагин cookie не был загружен. $.cookie не является стандартной функцией jQuery, и плагин должен быть загружен здесь. Обязательно включите соответствующий тег <script>, если необходимо (см. Следующий).
  • При включении файла cookie script обязательно включите jQuery FIRST, а затем плагин cookie.

то есть. ваша голова может содержать:

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>

и THEN

<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>
  • В некоторых случаях переименование файла на то, что НЕ включает ".cookie", устранило эту ошибку, по-видимому, из-за проблем с веб-сервером. По умолчанию загруженный script имеет название "jquery.cookie.js", но попробуйте переименовать его в нечто вроде "jquery_cookie.js", как показано выше. Подробнее об этой проблеме можно узнать здесь.
  • Наконец (это была моя проблема), убедитесь, что вы не включаете jQuery более одного раза. Если это так, возможно, что 1. jQuery загружается правильно 2. Плагин cookie загружается правильно 3. Наконец, ваше второе включение jQuery перезаписывает первое и уничтожает плагин cookie.

Для всех, кто использует проекты ASP.Net MVC, будьте осторожны с включенными включениями javascript по умолчанию; их иногда бывает трудно найти. Мое второе включение jQuery состояло в одной из моих глобальных страниц макета под строкой @Scripts.Render("~/bundles/jquery"). Я лично предпочитаю не передавать пучки и просто ссылаться на javascript по мере необходимости.

Приветствия и особая благодарность Kevin B за помощь в этом.

Ответ 2

старая версия jQuery Cookie устарела, поэтому, если вы получаете ошибку:

$.cookie is not a function

вам следует перейти на новую версию.

API для новой версии также отличается - вместо использования

$.cookie("yourCookieName");

вы должны использовать

Cookies.get("yourCookieName");

Ответ 3

добавьте этот плагин для jQuery.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

Ответ 4

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

Когда браузер загружает веб-страницу сначала, он загружает этот jquery.cookie.js и после этого вы js или jQuery, и теперь эта функция доступна для использования

Ответ 5

Убедитесь, что вы вошли в заголовок script, а не в нижний колонтитул страницы. В частности, в WordPress это не сработало:

wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js', array(), false, true);

Последний параметр указывает, включая нижний колонтитул script, и его нужно заменить на false (по умолчанию). Как это работает:

wp_register_script('cookie', get_template_directory_uri() . '/js/jquery.cookie.js');