![](/img/trans.png)
[英]How to set event to the Selector which is added class with .classList.add
[英]classList.add() is not activated immediately in clicked event
function highlight1(){ document.getElementById("div1").classList.add("red"); } function highlight2(){ document.getElementById("div2").classList.add("red"); } function highlight3(){ document.getElementById("div3").classList.add("red"); }
div{ display: inline-block; border: 1px solid black; height: 100px; width: 100px; } div:hover{ background: yellow; } .red{ background: red; }
<div id="div1" onclick="highlight1()">Division</div> <div id="div2" onclick="highlight2()">Division</div> <div id="div3" onclick="highlight3()">Division</div>
我是CSS的新手,我对代码有两个问题。
你的:hover
正在制作悬停的div
,即使是.red
div
,也会出现徘徊(黄色)而不是红色。 如果你愿意的话,你也可以.red
红色.red
divs red。
如果你只想要一个是红色的时间,你可以删除.red
从所有div使用前classList.add
。
使用类比单个id
更合适,因为元素是集合的一部分,而不是以某种方式是唯一的:
const divs = document.querySelectorAll('.box'); function reset(i) { divs.forEach(div => div.classList.remove("red")); divs[i].classList.add('red'); }
.box { display: inline-block; border: 1px solid black; height: 100px; width: 100px; } .box:hover { background: yellow; } .red, .red:hover { background: red; }
<div class="box" onclick="reset(0)">Division</div> <div class="box" onclick="reset(1)">Division</div> <div class="box" onclick="reset(2)">Division</div> </html>
你可以通过应用, div.red:hover
div:hover
这样做你实际上覆盖了div:hover
with div.red:hover
优先级div.red:hover
function highlight1(){ document.getElementById("div1").classList.add("red"); } function highlight2(){ document.getElementById("div2").classList.add("red"); } function highlight3(){ document.getElementById("div3").classList.add("red"); }
div{ display: inline-block; border: 1px solid black; height: 100px; width: 100px; } div:hover{ background: yellow; } div.red:hover,.red{ background: red; }
<div id="div1" onclick="highlight1()">Division</div> <div id="div2" onclick="highlight2()">Division</div> <div id="div3" onclick="highlight3()">Division</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.