使用事件委托或者捕获模式。
事件委托是将事件绑定在父元素上,通过 event.target 属性获取触发事件的子元素。这样做的好处是可以减少事件绑定的次数,提高性能。
示例代码:
HTML:
JavaScript: const parent = document.querySelector('#parent'); parent.addEventListener('click', function(event) { if (event.target.className === 'child') { // 子元素被点击,执行相应代码 } });
捕获模式是从外到内逐层执行事件的方式。即先执行父元素绑定的事件,再执行子元素的事件。这可以避免事件的命中漏失。
示例代码:
HTML:
JavaScript: const parent = document.querySelector('#parent'); parent.addEventListener('click', function(event) { // 父元素被点击,执行相应代码 }, true);
const children = document.querySelectorAll('.child'); for (let i = 0; i < children.length; i++) { children[i].addEventListener('click', function(event) { // 子元素被点击,执行相应代码 }, true); }