javascript - Javascript 新手 - 改变元素的样式

标签 javascript html css

因此,基于 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/

相关文章:

html - 在 HTML/CSS 中混合两个背景图像

javascript - 无法将 Bootstrap 加载到 nodejs

javascript - 是否可以在 Ext JS 中执行动态更改forceFit 的函数?

javascript - 如何提取脚本标签内的属性值?

javascript - 使用HTML/Js访问SQL数据库

html - 移动菜单不可滚动

javascript - 在EventEmitter上,我如何知道我可以监听的所有事件?

javascript - 使用选择图标类 selcetbox 显示 css 图标

pdf 中不支持的 HTML 样式标签

android - 如何在 Android Webkit 中提高图像质量(与 iOS 对比)