document.querySelectorAll('.selector').forEach((item) => {
item.addEventListener("click", (event) => {
document.querySelectorAll('.dropdown').classList.add("active");
});
});
.body-ct .selector{display:inline-block;width:200px;text-align:center;border:1px solid navy;border-radius:4px;}
.body-ct .selector:hover{cursor:pointer;}
.body-ct .selector h4{padding:5px 0;}
.body-ct .selector {position:relative;}
.body-ct .selector .dropdown{display:none;position:absolute;top:55px;z-index:2;width:200px;border:3px solid red;background-color:#FFF;}
.body-ct .selector .dropdown.active{display:block;}
.body-ct .selector .dropdown ul{list-style-type:none;text-align:left;background-color:#FFF;}
.body-ct .selector .dropdown ul li{background-color:#FFF;}
.body-ct .selector .dropdown ul li:hover{font-weight:700;}
<section class="body-ct">
<div class="container">
<div class="row">
<div class="col-12 sel-ct">
<div class="story-type-sel selector">
<h4>Story Type</h4>
<div class="dropdown story-selector">
<ul>
<li data-type="article">Article</li>
<li data-type="pr">Press Release</li>
<li data-type="analyst">Analyst Report</li>
</ul>
</div>
</div>
<div class="year-sel selector">
<h4>Year</h4>
<div class="dropdown year-selector">
<ul>
<li data-year="2021">2021</li>
<li data-year="2020">2020</li>
<li data-year="2019">2019</li>
<li data-year="2018">2018</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</section>
我无法dropdown从我的事件侦听器中引用该类。我认为这与使用.target或有关.currentTarget,但我不知道如何将它放在一起。
当用户单击带有 的元素时.selector,应通过添加一个.active类来显示一个下拉菜单。
document.querySelectorAll(".selector").forEach((item) => {
item.addEventListener("click", (event) => {
document.querySelector(".dropdown").classList.add("active");
});
});
这是 jQuery 中的相同内容,但我不想使用 jQuery。
$(".selector").on("click", function () {
$(this).find(".dropdown").addClass("active");
});