我正在使用按钮切换为网站制作黑暗模式。为了在更改页面时保持黑暗模式,我使用的是cookie。再次按下切换按钮时,暗模式被禁用但未保存,我不确定原因。
聚苯乙烯。我是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');
});
}
答案 0 :(得分:0)
当您按下切换按钮时,您还想切换Cookie的True / False值。现在,您始终将其设置为True或False,具体取决于第一个状态。
使用// Example
var app = express();
var bodyparser = require('body-parser');
app.use(bodyparser.urlencoded({extended: true});
.....
//
var apiRouter = express.Router();
apiRouter.route('/blogPosts')
.post(function(req, res) {
var blogPost = new BlogPost();
blogPost.postbody = req.body.postbody;
blogPost.save(function(err) {
if (err) {
return res.send(err);
}
res.json({ message: blogPost.postbody + "created"})
});
})
作为值存储到cookie中以自动切换布尔值。
修改强>
它确实无法正常工作,我发现由于布尔值,它无法正常工作。
布尔值存储为字符串(! $.cookie('darkModeOn')
和"false"
),因为"true"
给出布尔值true,if始终执行。当您使用整数而不是布尔值时,这可以使用,但您也可以将if更改为:
if ( "false")
如果使用整数,它也有效:
https://jsfiddle.net/6m2ydrh2/12/
if ($.cookie('darkModeOn')=="true") //...
另见这篇文章:jquery cookie set value to boolean true。 布尔值存储为字符串,因此会导致问题。