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>

参考技术A 最好一个设为0,另一个设为1,这样在判断的时候不用null,你这里错了,还有就是,你如果使用的是火狐浏览器,可以安装firebug插件,帮助调试,还能查看cookie信息 参考技术B 很乐意帮助你,已经帮你解决 随时找我帮忙本回答被提问者采纳 参考技术C 下面这段,改为 if($.cookie('the_cookie')==1)
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: ‘/’

参考技术D 你的代码可以实现效果。

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。确保在必要时包含适当的 &lt;script&gt; 标记(请参阅下一个)。

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中文出现乱码问题

使用 jQuery 创建、读取和擦除 cookie [重复]

jQuery $.cookie 不是一个函数

将 Cookie 添加到简单的 jQuery 函数 [重复]