jQuery $.cookie 不是函数

IT技术 javascript jquery asp.net-mvc cookies
2021-01-15 18:16:31

我正在尝试使用 jQuery 设置 cookie:

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

但是当我加载我的页面时,我收到错误“$.cookie is not a function”。这是我所知道的:

  • 我已经在这里下载了 jQuery cookie 插件
  • 我链接到 jQuery,然后链接到 cookie 插件。
  • jQuery 和 jQuery.cookie 都以 200 OK 正确加载。

我查看了其他几个答案(这里这里等等),大多数人建议重命名 cookie.js 文件。我已将我的 cookie 文件重命名为“jquery.cookeee.js”,但结果是一样的。

关于这里发生了什么的任何想法?

如果有帮助,我将在 MVC 4 中创建一个 Web 应用程序。

6个回答

以下是我遇到的所有可能的问题/解决方案:

1.下载cookie插件

$.cookie不是标准的 jQuery 函数,插件需要在这里下载确保<script>在必要时包含适当的标签(见下文)。

2. 在 cookie 插件之前包含 jQuery

当包含 cookie 脚本时,确保首先包含 jQuery,然后是 cookie 插件。

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

3. 不要多次包含 jQuery

这是我的问题。确保您不会多次包含 jQuery。如果您是,则可能:

  1. jQuery 正确加载。
  2. cookie 插件正确加载。
  3. 您第二次加入 jQuery 会覆盖第一个并破坏 cookie 插件。

对于使用 ASP.Net MVC 项目的任何人,请注意默认的 javascript 包包含。我第二次包含 jQuery 是在我的全局布局页面之一中@Scripts.Render("~/bundles/jquery")

4. 将插件文件重命名为不包含“.cookie”

在极少数情况下,将文件重命名为不包含“.cookie”的内容已修复此错误,显然是由于 Web 服务器问题。默认情况下,下载的脚本名为“jquery.cookie.js”,但尝试将其重命名为“jquery_cookie.js”,如上所示。关于这个问题的更多细节在这里

对我来说,jQuery 被添加了不止一次
2021-03-15 18:16:31
感谢您的“不止一次包含 jQuery”评论。7 年后,它解决了一个问题。
2021-03-19 18:16:31
它在 github 上说不再支持该插件,因此我将文件升级到较新版本(我认为是 2.1.0)但它不起作用,因此您必须使用此答案链接到的旧版本。
2021-04-03 18:16:31
我正在使用一个框架,问题在于 jQuery 的多重包含。非常感谢 !!!
2021-04-04 18:16:31

老版本的jQuery的Cookie已被弃用,因此,如果你得到的错误:

$.cookie is not a function

你应该升级到新版本

新版本的 API 也不同——而不是使用

$.cookie("yourCookieName");

你应该使用

Cookies.get("yourCookieName");
我将我的 jquery 升级到 3.3.1.js。但它不能正常工作。'Uncaught ReferenceError: Cookies is not defined' 是在我更改的同一行上生成的。有和我一样的吗?
2021-04-06 18:16:31

为 jquery 添加这个 cookie 插件。

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
我所需要的只是一个文件的简单链接,这很好地完成了这项工作。不需要所有的 npm install。
2021-03-29 18:16:31
只有当我wp_head()在我的 wordpress 主题中添加你给定的脚本后,它才起作用。
2021-04-04 18:16:31

检查您是否将脚本包含在页眉中而不是页脚中。特别是在 WordPress 中,这个不起作用:

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

最后一个参数表示将脚本包含在页脚中,需要更改为 false(默认)。它的工作方式:

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

您应该先添加,jquery.cookie.js然后在使用该函数的位置添加 js 或 jQuery。

当浏览器首先加载网页时,它会加载这个jquery.cookie.js,然后加载js 或 jQuery,现在该功能可供使用