JavaScript中实现事件代理时,有哪些关键点需留意?

2026-06-04 16:324阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1376个文字,预计阅读时间需要6分钟。

JavaScript中实现事件代理时,有哪些关键点需留意?

我们知道,如果给 form 中的 button 元素绑定事件,需要考虑它是否会触发 form 的 submit 行为。除此之外,其他场合给 button 元素绑定事件,你通常不需要担心这个事件会有非预期的副作用。

我们知道,如果给 form 里面的 button 元素绑定事件,需要考虑它是否会触发 form 的 submit 行为。除此之外,其它场合给 button 元素绑定事件,你几乎不用担心这个事件会有什么非预期的附加效果,很自然地会这样写事件处理代码:

var button = document.querySelector('button') button.addEventListener('click', function (e) { console.log('点击了按钮') })

你之所以放心这么写,是因为这个 button 元素没有使用事件代理,即没有代理任何子元素的事件。

事件代理的意思是,你要为一个元素绑定事件,但你不是直接把事件绑定到这个元素自己身上,而是绑定到这个元素的父元素上。当子元素的某个事件(比如点击事件)触发时,它的父元素相同的事件也会触发(我们常说的事件冒泡),此时我们说父元素代理了子元素的事件。

阅读全文
标签:地方我们

本文共计1376个文字,预计阅读时间需要6分钟。

JavaScript中实现事件代理时,有哪些关键点需留意?

我们知道,如果给 form 中的 button 元素绑定事件,需要考虑它是否会触发 form 的 submit 行为。除此之外,其他场合给 button 元素绑定事件,你通常不需要担心这个事件会有非预期的副作用。

我们知道,如果给 form 里面的 button 元素绑定事件,需要考虑它是否会触发 form 的 submit 行为。除此之外,其它场合给 button 元素绑定事件,你几乎不用担心这个事件会有什么非预期的附加效果,很自然地会这样写事件处理代码:

var button = document.querySelector('button') button.addEventListener('click', function (e) { console.log('点击了按钮') })

你之所以放心这么写,是因为这个 button 元素没有使用事件代理,即没有代理任何子元素的事件。

事件代理的意思是,你要为一个元素绑定事件,但你不是直接把事件绑定到这个元素自己身上,而是绑定到这个元素的父元素上。当子元素的某个事件(比如点击事件)触发时,它的父元素相同的事件也会触发(我们常说的事件冒泡),此时我们说父元素代理了子元素的事件。

阅读全文
标签:地方我们