【发布时间】:2021-07-12 10:48:29
【问题描述】:
当我单击按钮时,它会显示内容并获取类列表(“pm_sl_active”)以获取颜色和字体粗细,如果我单击第二个按钮,则第一个按钮的内容、颜色和粗细消失。
我不知道我的 if 条件是否有错误。
感谢大家的回复。
let p_m = document.body.querySelector(".p_m");
let s_l = document.body.querySelector(".s_l");
let poledniMenu = document.body.querySelector(".poledniMenu");
let stalyListek = document.body.querySelector(".stalyListek");
if (poledniMenu.style.display === "block") {
p_m.classList.add("pm_sl_active");
} else{
p_m.addEventListener("click", ()=> {
poledniMenu.style.display = "block";
stalyListek.style.display = "none";
});
}
if (stalyListek.style.display === "block") {
s_l.classList.add("pm_sl_active");
} else{
s_l.addEventListener("click", ()=> {
stalyListek.style.display = "block";
poledniMenu.style.display = "none";
s_l.classList.remove("pm_sl_active");
});
}
button{
padding: 10px 30px;
margin: 0;
cursor: pointer;
}
.pm_sl_active{
color: rgb(255, 87, 87);
font-weight: 800;
}
.poledniMenu{
display:block;
}
.stalyListek{
display: none;
}
<button class="p_m">Polední menu</button>
<button class="s_l">Stálý lístek</button>
<div class="poledniMenu">
<h3>POLEDNÍ MENU <br>
25.6.2021</h3>
<p>Rozvoz z technických důvodů není.<br>
Děkujeme za pochopení.</p>
</div>
<div class="stalyListek">
<h3>STÁLÝ JÍDELNÍ LÍSTEK</h3>
<p>Rozvoz z technických důvodů není.<br>
Děkujeme za pochopení.</p>
</div>
【问题讨论】:
-
“我不知道我是否在 if 条件中有错误” - 那么如果没有问题/错误,为什么还要问这个问题呢?
-
How do I ask a good question?: “描述问题。“它不起作用”不足以帮助人们理解你的问题。相反,告诉其他读者预期的行为应该是什么。告诉其他读者错误消息的确切措辞是什么,以及产生错误消息的代码行。使用对问题的简短但描述性摘要作为问题的标题。"
-
Duplicate of Why element.style always return empty in JS?。直接检查 CSS 属性是best avoided。相反,应该使用 CSS 类并使用
.classList.has("cls")检查、使用.classList.toggle("cls", condition)切换等。考虑改用hiddenattribute。
标签: javascript html css if-statement