我编写了以下脚本来存储变量的值" muted_status"然后将其传递给cookie,但似乎该变量总是具有错误值。
var muted_status = false;
$('#jp_container_1').on("click", function() {
setTimeout(function() {
if ($('#jp_container_1').hasClass("jp-state-muted")) {
var muted_status = true;
} else {
var muted_status = false;
}
}, 1000);
$.cookie('jp_mute', muted_status, { expires: 7, path: '/'});
});
答案 0 :(得分:1)
这里有两个问题。首先,您多次重新声明muted_status
变量,这意味着您在setTimeout
函数中设置的变量与调用{{1}时使用的变量不同}}。其次,最重要的是,$.cookie
的调用会在您设置超时后立即同步进行,而$.cookie
将在一秒后设置。
也许这样的事情是你的目标?
muted_status
首先将cookie设置为静音,然后可以在一秒钟之后将其设置为其他值。如果您的目的是每秒检查一次静音状态,那么您需要使用function setMutedStatus(mutedStatus) {
$.cookie('jp_mute', mutedStatus, { expires: 7, path: '/'});
}
setMutedStatus(false);
$('#jp_container_1').on("click", function() {
setTimeout(function() {
var mutedStatus = $('#jp_container_1').hasClass("jp-state-muted");
setMutedStatus(mutedStatus);
}, 1000);
});
代替setInterval
。