首页 > 解决方案 > 在 javascript 中添加和删除一个类

问题描述

我正在尝试编写一个函数,以使视觉对象在用户单击它时打开和关闭,打开和关闭。然后在类中添加一个单击事件侦听器,称为 button btn-sauce

到目前为止,我的代码不起作用:

function renderWhiteSauce() {
  if (element.classList) {
  element.classList.toggle("btn-sauce.active");
} else {
  var classes = element.className.split(" ");
  var i = classes.indexOf("btn-sauce.active");
  if (i >= 0)
    classes.splice(i, 1);
  else
    classes.push("btn-sauce.active");
    element.className = classes.join(" ");
}

document.querySelector('.btn-sauce.active').addEventListener('click', () => {
  state.sauce = !state.sauce;
  renderEverything();
});

标签: javascript

解决方案


btn-sauce并且active是两个独立的类,但是您正在编写代码,就像它们是一个类一样。从 querySelector 行上方的所有内容中删除btn-sauce.(包括点),您将能够active打开和关闭该类。

如果元素一开始不是“活动的”,您还应该更改document.querySelector('.btn-sauce.active')document.querySelector('.btn-sauce').

最后一点,你正在调用renderEverything()你的点击处理程序,我假设它是另一个调用的函数renderWhiteSauce(),但我想我会提到它,以防这只是一个错字并且它们应该是同一个函数。


推荐阅读