我正在尝试向组件添加一个eventListener,但这会破坏我的应用程序...
import "./button.scss";
document.getElementById('change-theme-btn').addEventListener('click', function () {
document.body.classList.toggle('pink-background');
});
const button = '<button id="change-theme-btn">Button</button>';
export default button;
答案 0 :(得分:0)
您不能将侦听器添加到不在DOM中的DOM节点。您应该具有无法调用null的addEventListener的错误,因为getElementById将找不到该按钮。要解决此问题,您可以使用事件委托:
y_true
答案 1 :(得分:0)
我敢肯定,在按钮真正出现在页面上之前,您甚至添加了正在运行的侦听器。我建议将其放在函数中,然后单击引用该函数的按钮。见下文。
import "./button.scss";
window.buttonClick = function(e) {
document.body.classList.toggle('pink-background');
};
const button = '<button onclick="buttonClick()" id="change-theme-btn">Button</button>';
export default button;