jQuery$.cookie不是函数

jQuery $.cookie is not a function

本文关键字:函数 cookie jQuery      更新时间:2023-09-26

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

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

但当我加载页面时,我会收到错误"$.cookie不是一个函数"。以下是我所知道的:

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

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

有什么想法吗?

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

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

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.jss"的名称,如上所示。有关此问题的更多详细信息,请参阅此处。

旧版本的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>

检查脚本是否包含在页面的页眉中,而不是页脚中。特别是在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,现在该功能可以使用

我也遇到了这个问题。我发现有一个$(document).ready函数,它在主体内的脚本标记中包含一个$.cookie,而在jquery下面的头中按预期加载cookie js,导致在cookie插件完成加载之前处理了$(document).ready。

我在$(document).ready脚本之前移动了主体中的cookie插件加载脚本,错误消失了:D

Solve jQuery$cookie不是此问题的函数jquery cdn更新在解决这个问题

 <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
 <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>