如果 addEventListener 只有在第一次被调用后才起作用,有可能是因为事件已被移除或覆盖。可以使用 removeEventListener() 方法来移除事件监听器。另外,可以使用 once 参数来确保事件只会被触发一次。
示例代码:
const button = document.querySelector('#myButton');
function handleClick() {
console.log('Button clicked');
}
button.addEventListener('click', handleClick);
// 假设代码通过某种方式重新渲染了按钮,导致事件被覆盖或移除了
// 解决方法 1:使用 removeEventListener() 移除事件监听器
button.removeEventListener('click', handleClick);
// 解决方法 2:使用 once 参数确保事件只被触发一次
button.addEventListener('click', handleClick, { once: true });