我正在尝试使用jQuery设置cookie:
$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
但是当我加载页面时,我收到错误“$ .cookie不是函数”。这就是我所知道的:
我已经看了几个其他答案(here和here等),大多数人建议重命名cookie.js文件。我已将我的cookie文件重命名为“jquery.cookeee.js”,但结果是一样的。
关于这里发生了什么的任何想法?
如果它有帮助,我在MVC 4中创建一个Web应用程序。
如果有其他人偶然发现$.cookie is not a function
问题,以下是我遇到的所有可能的问题/解决方案:
$.cookie
不是标准的jQuery函数,插件需要下载here。确保在必要时包含适当的<script>
标签(见下)。即你的头可能包含:
<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>
然后
<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>
对于使用ASP.Net MVC项目的任何人,请小心使用默认的javascript包内容;他们有时很难找到。我第二次包含jQuery是在@Scripts.Render("~/bundles/jquery")
行下的全局布局页面之一。我个人不喜欢渲染包,只是根据需要链接到javascript。
干杯并特别感谢Kevin B对此的帮助。
jQuery Cookie的old version已被弃用,因此如果您收到错误消息:
$.cookie is not a function
你应该升级到new version。
新版本的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,现在该功能可以使用
解决jQuery $ .cookie不是函数这个问题jquery cdn update解决了这个问题
<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>
我也有这个问题。我发现有一个$(document).ready函数,其中包含一个$ .cookie在一个脚本标记内部,同时在头部BELOW jquery中加载cookie js导致$(文件).ready在cookie之前处理插件可以完成加载。
我在$(document).ready脚本之前移动了cookie插件加载脚本,错误消失了:D