因此,基于 bool 值,我希望边栏中的某些选项卡在页面加载时显示/隐藏。
var someVar = true;
function show_ifTrue() {
if (Boolean(someVar) == true) {
document.getElementById('x').style.display = 'block';
console.log("I CHANGED IT");
}
else {
document.getElementById('x').style.background = 'red';
}
}
.sidebar {
position: fixed;
overflow-y: scroll;
top: 0;
bottom: 0;
float: left;
display: inline-block;
z-index: 50;
}
#tab {
display: block;
}
#x {
display: none;
}
<div class="sidebar">
<a href="#" id="tab"> Cats </a>
<a href="#" id="x" onpageshow="show_ifTrue();"> Dogs</a>
</div>
我已经尝试了所有方法,包括从 .sidebar a{...}
中取出显示并使用 !important
为每个选项卡提供自己的显示属性,更改使用 style.cssText
或设置属性的 JS,我无法让它改变显示。
最佳答案
为了改变颜色,你必须先调用函数,但你从来没有调用它,因为 onpageshow
只能添加到 <body>
, 所以你可以把它移到那里 - <body onpageshow='...'>
.或者,如果您仍然只想处理 div 本身,请在加载时执行:
window.onload=function(){
show_ifTrue();
}
这种方式也可以使用您的 pageshow:
window.onpageshow=function(){
show_ifTrue();
}
此外,您的函数中不需要 bool 前缀,只需 someVar == true
.
关于javascript - Javascript 新手 - 改变元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37864096/