为什么不是't我的cookie更新
Why isn't my cookie updating?
我正在使用按钮切换为网站创建一个黑暗模式。为了在更改页面时保存黑暗模式,我使用了Cookie。再次按下开关时,暗模式被禁用,但没有保存,我不知道为什么。
Ps。我是javascript新手,所以这可能是一个愚蠢的错误。
if ($.cookie('darkModeOn')){
$('html').toggleClass('dark-mode');
$('#dark-toggle').click(function(){
$.cookie('darkModeOn', false, { expires: 7 });
$('html').toggleClass('dark-mode');
});
}
else
{
$('#dark-toggle').click(function(){
$.cookie('darkModeOn', true, { expires: 7 });
$('html').toggleClass('dark-mode');
});
}
当您按下切换按钮时,您还希望切换cookie的True/False值。现在,您总是根据第一种状态将其设置为True或False。
使用! $.cookie('darkModeOn')
作为值存储到cookie中,以自动切换布尔值。
编辑
它确实不起作用,我发现它不起作用是因为布尔值。布尔值存储为字符串("false"
和"true"
),因为if ( "false")
给出布尔值true,所以总是执行if。当您使用整数而不是布尔值时,这将起作用,但您也可以将if更改为:
if ($.cookie('darkModeOn')=="true") //...
如果你使用整数,它也可以:
https://jsfiddle.net/6m2ydrh2/12/
$('#dark-toggle').click(function(){
//this gets executed each click so we need to toggle the boolean value.
if ($.cookie('darkModeOn')==0){
$.cookie('darkModeOn', 1, { expires: 7 });
}else{
$.cookie('darkModeOn', 0, { expires: 7 });
}
console.log( "cookie:"+$.cookie('darkModeOn')) ;
$('#test').toggleClass('dark-mode');
});
if ($.cookie('darkModeOn')){
//this is only executed on load
$('#test').toggleClass('dark-mode');
}
另请参阅本文:jquerycookie将值设置为布尔值true。布尔值存储为字符串,因此会引起问题。
相关文章:
- 我可以't使用AngularJS读取用PHP创建的Cookie
- 如何防止AddThis在我的网站上使用Cookie
- 从javascript,向我的cookie添加域或过期不会创建cookie
- 无法将我的计时器值存储在 cookie 中
- 当我重新访问该页面时,我的 cookie 不起作用
- 我是否设置为正确使用 Angular Js 的 cookie
- 如何在我的程序上应用 localStorage 或 javascript Cookie
- 将我的 cookie 数据保存到 MySQL 数据库
- JQuery.post 从服务器获取cookie,但不在我的计算机上设置它们
- 为什么我的角度响应拦截器没有列出 cookie
- 我的 Javascript cookie 在会话时过期,而不是在 30 天后过期
- 编辑我的脚本并添加一个jQuery cookie以仅显示一次弹出窗口
- 如何在我的JavaScript中保存添加或删除类cookie
- 为什么我的cookie脚本不起作用
- 我可以看看javascript中是否存在服务器设置的cookie吗
- 我必须为每个下拉菜单创建单独的cookie吗
- 如果我使用另一个域名来提供我的JavaScript,并且该JavaScript设置了一个cookie,那么这算不算第三方
- 为什么不是't我的cookie更新
- 为什么不是't我的cookie存储
- 我如何设置我的cookie到一个特定的域