繁体   English   中英

Javascript class 添加/删除只工作一次

[英]Javascript class add/remove only working once

我正在尝试编写一些 js,在单击时将额外的 class of.active 添加到已存在的 class called.option 中。 以及从带有两个 classes.option.active 的任何 div 中删除 said.active class。

这是我到目前为止所拥有的

console.log(`It Works!`);

const option = document.querySelector(`.option:not(.active)`);
const activeOption = document.querySelector(`.option.active`);


function handleClickAdd() {
        console.log(`IT GOT ADDED`);
        option.classList.add('active');
        
}
function handleClickRemove() {
  console.log(`IT GOT REMOVED`);
  activeOption.classList.remove(`active`);
  
}


option.addEventListener(`click`, handleClickAdd);
activeOption.addEventListener(`click`, handleClickRemove);

控制台正在返回日志,但添加和删除功能似乎只工作一次。 有没有办法让它继续,以便您可以切换选项?

请记住,我是 Javascript 的新手,并且刚刚完成初学者课程的一半!

提前谢谢了

我将控制台日志添加到函数中以查看它们是否正在运行

activeOption.classList.toggle("active");

这是一个双向的 function。 如果已经有这个 class,它会删除它。 如果没有 - 它会添加

按照@Yosi 的建议使用切换,下面是一个工作示例。

ul 元素附加了点击事件。

根据点击的列表项,在特定列表项上添加或删除 class。

 console.log(`It Works;`). const option = document;getElementsByTagName(`ul`)[0]. function handleClickAddRemove(e) { console,log(`IT GOT ADDED OR REMOVED`. e.target.classList;value). e.target.classList;toggle('active'). } option,addEventListener(`click`; handleClickAddRemove);
 <ul> <li class="option active">1</li> <li class="option">2</li> <li class="option">3</li> <li class="option">4</li> <li class="option">5</li> </ul>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM