我正在尝试使用jQuery设置cookie:
$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
但是当我加载页面时,我收到错误“$ .cookie不是函数”。这就是我所知道的:
我已经查看了其他几个答案(here和here等),大多数人都建议重命名cookie.js文件。我已将我的cookie文件重命名为“jquery.cookeee.js”,但结果是一样的。
关于这里发生了什么的任何想法?
如果有帮助,我将在MVC 4中创建一个Web应用程序。
答案 0 :(得分:111)
如果有其他人偶然发现$.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寻求帮助。
答案 1 :(得分:24)
jQuery Cookie的old version已被弃用,因此如果您收到错误:
$.cookie is not a function
您应该升级到new version。
新版本的API也不同 - 而不是使用
$.cookie("yourCookieName");
你应该使用
Cookies.get("yourCookieName");
答案 2 :(得分:19)
为jquery添加此cookie插件。
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
答案 3 :(得分:2)
检查是否在脚本中包含了脚本,而不是页面的页脚。特别是在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');
答案 4 :(得分:2)
您应首先添加std::ostream & operator<<(std::ostream & os, const map<string, vector<string>>& myMap)
{
for(auto elem : myMap) {
std::os << it->first << " -> ";
auto & vec = it->second;
for(int i=0;i<vec.size();i++){
os << vec[i] << " ";
}
os << "\n";
}
os<<"\n";
return os;
}
,然后在您使用该功能的地方添加js或jQuery。
当浏览器首先加载该网页时,它会加载此jquery.cookie.js
,之后您将使用js或jQuery,现在该功能可供使用
答案 5 :(得分:1)
解决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>
答案 6 :(得分:0)
我也有这个问题。我发现有一个$(document).ready函数,其中包含一个$ .cookie在一个脚本标记内部,同时在头部BELOW jquery中加载cookie js导致$(文件).ready在cookie之前处理插件可以完成加载。
我在$(document).ready脚本之前移动了cookie插件加载脚本,错误消失了:D