jQuery $ .cookie不是一个函数

我想使用jQuery设置一个cookie:

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

但是当我加载我的网页,我收到错误“$ .cookie不是一个function”。 这是我所知道的:

  • 我在这里下载了jQuery cookie插件。
  • 我链接到jQuery和THEN的cookie插件。
  • jQuery和jQuery.cookie都正确加载200 OKs。

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

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

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

如果其他人绊倒$.cookie is not a function问题,这里是所有可能的问题/我遇到的解决scheme:

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

即你的头可能包含:

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

接着

 <script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script> 
  • 在某些情况下,将文件重命名为不包含“.cookie”的文件修复了此错误,显然是由于Web服务器问题。 默认情况下,下载的脚本标题为“jquery.cookie.js”,但尝试将其重命名为“jquery_cookie.js”,如上所示。 这个问题的更多细节在这里 。
  • 最后(这是我的问题),确保你不是多次包括jQuery。 如果你是这样,有可能是1. jQuery加载正确2. cookie插件加载正确3.最后,你的第二个包含jQuery覆盖第一个并销毁cookie插件。

对于任何使用ASP.Net MVC项目的人来说,要小心默认的JavaScript包内容; 他们可能很难find有时。 我第二次joinjQuery是在@Scripts.Render("~/bundles/jquery")行下的全局布局页面之一。 我个人更喜欢不要渲染捆绑,只是根据需要链接到JavaScript。

欢迎和特别感谢凯文乙在这一个帮助。

旧版本的jQuery Cookie已被弃用,所以如果你得到错误:

 $.cookie is not a function 

你应该升级到新版本 。

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

 $.cookie("yourCookieName"); 

你应该使用

 Cookies.get("yourCookieName"); 

为jquery添加这个cookie插件。

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

您应该添加第一个jquery.cookie.js然后添加您的js或jQuery在哪里使用该function。

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

检查您是否将脚本包含在页眉中,而不是脚本中。 特别是在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');