jquery cookie 问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery cookie 问题相关的知识,希望对你有一定的参考价值。
我用的是jquery.cookie.js 我想选中多选框记录COOkie 取消选中清空cookie 当页面刷新的时候判断cookie是否存在 存在选中多选框 ,不存在无操作 高手们看看这段代码哪里有问题?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="jquery-1.6.4.min.js" type="text/javascript"></script>
<script src="jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
if($.cookie('the_cookie')!=null)
$("#check").attr("checked",'true');
);
$(document).ready(function()
$("#check").click(function()
if ($.cookie('the_cookie') == null)
$.cookie('the_cookie', '1'); // set cookie
$.cookie('the_cookie', '1', expires: 7 ); // set cookie with an
alert('aa');
else
$.cookie('the_cookie', '', expires: -1 );
alert("bb");
);
);
</script>
</head>
<body>
dsaf<input id="check" type="checkbox" />
dsaf<input id="Checkbox1" type="checkbox" />
<a href="HTMLPage2.htm">跳转</a>
</body>
</html>
if($.cookie('the_cookie')!=null)
$("#check").attr("checked",'true');
追问
跳转页面cookie就没了 怎么办啊?
追答什么意思,说清楚点?
追问点击超链接跳转到了另一个页面 另一个页面也有一个 checkbox 但是 确取不了$.cookie('the_cookie') 值
代码:
if ($.cookie('the_cookie') == "1")
if ($.cookie('the_cookie') != null)
$("#check").attr("checked", 'true');
另一个页面也有这段代码吗?
是同一个域名下的吗?可以试一下将以下这句:
$.cookie('the_cookie', '1', expires: 7 ); // set cookie with an
改为:
$.cookie(’the_cookie’, ‘1’, expires: 7, path: ‘/’
jQuery $.cookie 不是一个函数
【中文标题】jQuery $.cookie 不是一个函数【英文标题】:jQuery $.cookie is not a function 【发布时间】:2013-08-04 04:12:37 【问题描述】:我正在尝试使用 jQuery 设置 cookie:
$.cookie("testCookie", "hello");
alert($.cookie("testCookie"));
但是当我加载我的页面时,我收到错误“$.cookie 不是函数”。以下是我所知道的:
我已经下载了jQuery cookie插件here。 我正在链接到 jQuery,然后是 cookie 插件。 jQuery 和 jQuery.cookie 都在 200 次 OK 后正确加载。我查看了其他几个答案(here 和 here 等),大多数人建议重命名 cookie.js 文件。我已将我的 cookie 文件重命名为“jquery.cookeee.js”,但结果是一样的。
对这里发生的事情有什么想法吗?
如果有帮助,我将在 MVC 4 中创建一个 Web 应用程序。
【问题讨论】:
浏览器控制台有异常吗?也许你的 jQuery 版本不适合你的 jQuery cookie 插件版本 你是否包含了 jQuery 两次? (很可能是的)。否则,您要么使用 $.noConflict(),要么包含另一个覆盖 $.js 的文件。 $.fn.jquery 在包含 jquery.js 后立即为您提供什么,以及在您的代码中发生错误的地方。 @ElliotSchmelliot 是的,因为第二个将完全覆盖第一个,包括所有插件。 如果您已经找到答案,您可以自己回答。这可以防止其他人正在研究答案甚至打开问题。 【参考方案1】:以下是我遇到的所有可能的问题/解决方案:
1。下载cookie插件
$.cookie
不是标准的jQuery函数,需要下载插件here。确保在必要时包含适当的 <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。如果是,则可能是:
-
jQuery 加载正确。
cookie 插件加载正确。
第二个包含的 jQuery 会覆盖第一个并破坏 cookie 插件。
对于使用 ASP.Net MVC 项目的任何人,请注意默认的 javascript 包包含。我第二次加入 jQuery 是在我的一个全局布局页面中,位于 @Scripts.Render("~/bundles/jquery")
行下。
4。将插件文件重命名为不包含“.cookie”
在极少数情况下,将文件重命名为不包含“.cookie”的内容已修复此错误,这显然是由于 Web 服务器问题。默认情况下,下载的脚本标题为“jquery.cookie.js”,但请尝试将其重命名为“jquery_cookie.js”,如上所示。关于这个问题的更多细节是here。
【讨论】:
我使用的是一个框架,问题在于 jQuery 的多重包含。非常感谢!!! 它在 github 上说该插件不再受支持所以我将文件升级到较新的版本(我认为是 2.1.0)并且它不起作用所以你必须使用旧版本这个答案链接到。 对我来说 jQuery 被添加了不止一次 感谢您对“不止一次包含 jQuery”的评论。它在 7 年后解决了一个问题。【参考方案2】:jQuery Cookie 的 old version 已被弃用,因此如果您收到错误消息:
$.cookie is not a function
你应该升级到new version。
新版本的 API 也不同——而不是使用
$.cookie("yourCookieName");
你应该使用
Cookies.get("yourCookieName");
【讨论】:
我将 jquery 升级到 3.3.1.js。但它不能正常工作。 'Uncaught ReferenceError: Cookies is not defined' 是在我更改的同一行上生成的。有和我一样的人吗?【参考方案3】:为 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_head()
函数之后添加给定脚本时它才有效。
我只需要一个简单的文件链接就可以很好地完成这项工作。不需要所有的 npm install。【参考方案4】:
检查您是否将脚本包含在页眉而不是页脚中。特别是在 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');
【讨论】:
【参考方案5】:您应该首先添加jquery.cookie.js
,然后在您使用该功能的地方添加您的js 或jQuery。
当浏览器首先加载网页时,它会加载此jquery.cookie.js
,然后是 js 或 jQuery,现在该功能可以使用了
【讨论】:
【参考方案6】:我也有这个问题。我发现有一个 $(document).ready 函数,该函数在 body 内的脚本标记中包含一个 $.cookie,同时按预期将 cookie js 加载到 BELOW jquery 的头部导致 $(document).ready 在 cookie 之前处理插件可以完成加载。
我将 cookie 插件加载脚本移到 $(document).ready 脚本之前的正文中,错误消失了:D
【讨论】:
【参考方案7】:解决jQuery $.cookie is not a function 这个问题 jquery cdn update in 解决了这个问题
<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>
【讨论】:
写这篇文章的时候你在哪里喝醉了?这些词根本不按那个顺序排列。以上是关于jquery cookie 问题的主要内容,如果未能解决你的问题,请参考以下文章
jquery.cookie.js插件删除不掉cookie的问题
为啥我用jquery 写 cookie总是undefined
关于使用jquery.cookie.js存cookie中文出现乱码问题