首页 > 解决方案 > 事件冒泡事件监听器在目标上删除/添加类不是删除类

问题描述

如果目标元素没有该类,我正在尝试添加一个类 .active ,并且如果另一个元素具有该类,我想删除该类,因此只有我单击的那个类具有该元素。我正在尝试使用此代码执行此操作-

document.addEventListener('click',function(e){
    document.querySelector('.active').classList.remove('.active');
    if(!e.target.classList.contains('active') && e.target.classList.contains('day')){
        e.target.classList.add('active');
    }
 });

我希望当我单击另一个元素时删除具有 .active 类的任何内容,但是当我单击另一个元素时,活动类仍保留在已经具有活动类的元素上,并将其添加到我单击的目标上上。我的控制台没有错误。

标签: javascriptdom

解决方案


它一定要是

document.querySelector('.active').classList.remove('active')

不是

document.querySelector('.active').classList.remove('.active')

正如您已经告诉浏览器它是关于 CSS 类 ( classList) 的那样,您不再在指定的类前面加上..


推荐阅读