jQuery $ .cookie不是一个函数

Ell*_*iot 73 javascript cookies asp.net-mvc jquery

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

$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
Run Code Online (Sandbox Code Playgroud)

但是当我加载页面时,我收到错误"$ .cookie不是函数".这就是我所知道的:

  • 在这里下载了jQuery cookie插件.
  • 我链接到jQuery和那个cookie插件.
  • jQuery和jQuery.cookie都正确加载200 OK.

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

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

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

Ell*_*iot 118

如果其他人偶然发现$.cookie is not a function问题,我遇到的所有问题/解决方案都是:

  • 没有下载cookie插件.$.cookie不是标准的jQuery函数,插件需要在这里下载.确保<script>在必要时包含适当的标记(参见下文).
  • 包含cookie脚本时,请确保包含jQuery FIRST,然后是cookie插件.

即你的头可能包含:

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

然后

<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
  • 在某些情况下,将文件重命名为不包含".cookie"的文件已修复此错误,显然是由于Web服务器问题.默认情况下,下载的脚本标题为"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对此的帮助.

  • 我正在使用一个框架,问题在于多次包含jQuery.非常感谢 !!! (11认同)
  • 对我来说,jQuery不止一次被添加 (2认同)
  • 感谢您的“不止一次包含 jQuery”评论。7年后解决了一个问题。 (2认同)

YPC*_*ble 27

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

$.cookie is not a function
Run Code Online (Sandbox Code Playgroud)

你应该升级到新版本.

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

$.cookie("yourCookieName");
Run Code Online (Sandbox Code Playgroud)

你应该使用

Cookies.get("yourCookieName");
Run Code Online (Sandbox Code Playgroud)

  • 我将我的jquery升级到3.3.1.js。但是它不能正常工作。在我更改的同一行上生成了“未捕获的ReferenceError:未定义Cookies”。有没有人和我一样? (2认同)

cab*_*abs 20

为jquery添加这个cookie插件.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
Run Code Online (Sandbox Code Playgroud)