在for循环中,通常我们会给每个元素添加事件监听器。但是,如果使用变量声明添加事件监听器,则事件监听器的行为会变得不稳定。最好的解决方法是将事件监听器分离出for循环。
以下是一种
const myElements = document.querySelectorAll('.myElements');
function handle(element) { element.addEventListener('click', function() { console.log('I was clicked!'); }); }
for (let i = 0; i < myElements.length; i++) { handle(myElements[i]); }
此方法首先选择所有需要添加事件监听器的元素,然后通过将每个元素作为参数传递给单独的事件处理器函数来避免在for循环中声明变量。