【发布时间】:2020-01-16 06:02:21
【问题描述】:
我正在尝试将复选框(选中/未选中)和音频(播放/暂停)的状态保存到本地存储。复选框的默认状态被选中并且音频正在播放(循环),如下面的代码所示。
因此,如果选中该复选框,则音频正在播放,两者都应保存到本地存储(选中复选框并播放音频)。
否则,如果复选框未选中,音频将暂停,并且两者都应保存到本地存储(复选框未选中且音频暂停)。
我遇到的问题是在再次检查后保存复选框和音频的状态。
重现问题的步骤: 1)取消选中复选框>音频停止>刷新浏览器>工作 2)选中复选框>音频播放>刷新浏览器>不工作,未选中复选框并且音频不播放
这里是javascript:
if (window.localStorage.getItem("musicState") != null) {
var music = window.localStorage.getItem("musicState");
if (music == "true") {
status = 'pause';
$("audio").trigger(status);
}
else {
status = 'pause';
$("audio").trigger(status);
$("input:checkbox[name='music']").removeAttr("checked");
}
}
$("input:checkbox[name='music']").click(function () {
var visMusic = "play";
if (status == 'pause') {
status = 'play';
} else {
status = 'pause';
}
$("audio").trigger(status);
window.localStorage.setItem("musicState", visMusic)
});
这里是 HTML:
<audio autoplay loop>
<source src="audio/music.mp3" type="audio/mpeg">
</audio>
<label><input type="checkbox" name="music" checked></label>
【问题讨论】:
-
status在哪里定义?你的input type="checkbox"的 jQuery 选择器看起来不对。它是否工作并注册了点击事件处理程序? -
在您的点击处理程序中,您将 localStorage 项目值设置为
visMusic,它以"play"开头——在存储它之前,您在哪里将其更改为其他任何值?
标签: javascript html