Skip to content

无限下拉列表中通过事件代理监听子元素的点击

事件代理

  • 用 e.target 获取触发元素
  • 用 matches 来判断是否是触发元素

代码演示:

js
<div id="div3">
  <a href="#">a1</a>
  <a href="#">a2</a>
  <a href="#">a3</a>
  <a href="#">a4</a>
  <button>加载更多...</button>
</div>

a 的点击都通过 div3 来代理

js
// 事件绑定函数
function bindEvent(elem, type, fn) {
  elem.addEventListener(type, fn);
}
const div3 = document.getElementById('div3');
bindEvent(div3, 'click', (event) => {
  event.preventDefault(); // 阻止默认行为
  const target = event.target;
  if (target.nodeName === 'A') {
    alert(target.innerHTML);
  }
});
  • 代码简洁
  • 减少浏览器内存占用
  • 但是,不要滥用

基于 MIT 许可发布