【发布时间】:2018-05-23 10:04:49
【问题描述】:
用户可以从下拉列表中选择一个主题,选定的主题将存储在本地存储中。虽然它可以将下拉值保存在本地存储中,但它不会调用样式表。请帮忙,谢谢!
请原谅科学怪人类型的代码。 JS 对我来说是陌生的,我是一名设计师。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<link href="style1.css" rel="stylesheet" type="text/css" title="s1" id="s1"/>
</head>
<body>
<select id="mySelect" class="test">
<option value="style1.css">Option A</option>
<option value="style2.css">Option B</option>
<option value="style3.css">Option C</option>
</select>
<!--local storage-->
<script>
$('.test').change(function() {
localStorage.setItem(this.id, this.value);
}).val(function() {
return localStorage.getItem(this.id)
});
</script>
<!--dropdown css-->
<script>
function setStyleSource (linkID, sourceLoc) {
var theLink = document.getElementById(linkID);
theLink.href = sourceLoc;
console.log(theLink.href);
}
document.getElementById("mySelect").addEventListener("change", function(){
var selected = this.options[this.selectedIndex].value;
setStyleSource ("s1", selected)
});
</script>
</body>
</html>
1.更改css的下拉菜单有效。 2.localstorage 用于所选选项的工作。 但是存储的选定选项实际上并没有显示它自己的 css 表(而是显示默认 css)。
【问题讨论】:
-
您的 console.log 显示什么?
-
我认为唯一改变样式表的是下拉列表中的选择,这会改变链接(您可能需要刷新页面?)我可能是错的,但它看起来不像调用存储正在做任何事情。
-
@dgrogan 它显示为空白
-
@wazz 到目前为止,通过更改下拉列表,它无需刷新即可替换样式表。 localstorage 存储下拉选项,因此刷新后选项保持不变。但该选项不会触发样式表的更改。
标签: javascript css drop-down-menu local-storage