javascript - 在 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();
});
解决方案
btn-sauce
并且active
是两个独立的类,但是您正在编写代码,就像它们是一个类一样。从 querySelector 行上方的所有内容中删除btn-sauce.
(包括点),您将能够active
打开和关闭该类。
如果元素一开始不是“活动的”,您还应该更改document.querySelector('.btn-sauce.active')
为document.querySelector('.btn-sauce')
.
最后一点,你正在调用renderEverything()
你的点击处理程序,我假设它是另一个调用的函数renderWhiteSauce()
,但我想我会提到它,以防这只是一个错字并且它们应该是同一个函数。
推荐阅读
- riscv - 使用 risc-v 定时器中断和用尖峰模拟的问题
- python - 训练模型和模型预测的真正含义是什么
- google-app-engine - 登录远程 App Engine 实例时是否可以使用 ED25519 而不是 RSA?
- python - 为什么切换屏幕在 kivy 中不起作用?
- python - 当一个方法分支到另一个方法时如何进行单元测试
- excel - 页脚命令第二次无法正常工作
- angular - 主页使用路由器插座在 Angular 11 中渲染两次
- r - learning_curve_dat() with error: $ operator not defined for this S4 class
- html - 如何删除按钮的默认样式
- python - RabbitMQ 鼠兔。如何修复 StreamLostError