[英]jQuery: Class not added on first click but works on subsequent clicks
我在点击#lights
时试图切换light-mode
CSS类,我想将此更改存储到cookie中。 下面是我到目前为止所做的,但它要求用户点击两次才能正常工作:
jQuery(document).ready(function($) {
if ($.cookie('light-mode') == "yes") {
$("body").addClass("light-mode");
}
$("#lights").click(function() {
if ($.cookie('light-mode') == "undefined" || $.cookie('light-mode') == "no") {
$.cookie('light-mode', 'yes', {
path: '/'
});
$("body").addClass("light-mode");
} else {
$.cookie('light-mode', 'no', {
path: '/'
});
$("body").removeClass("light-mode");
}
});
});
除非我忽略了一些简单的事情,否则问题可能与我如何使用cookie的逻辑有关。
也许你可以修改你的方法来解耦light-mode
类的切换,以及状态的持久性到这样的相应的cookie?
jQuery(document).ready(function($) { if ($.cookie('light-mode') == "yes") { $("body").addClass("light-mode"); } $("#lights").click(function() { /* Toggle the class regardless of cookie state */ $("body").toggleClass("light-mode"); /* Update cookie value based on current class assignment */ $.cookie('light-mode', $("body").hasClass("light-mode") ? 'yes' : 'no', { path: '/' }); }); });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.