什么是公司注册资金,深圳网站自然优化,电脑软件制作,黄冈app下载推广价格一、事件流 事件流指的是事件完整执行过程中的流动路径#xff0c;分为捕获阶段、冒泡阶段。如上图
二、事件捕获 当一个元素的事件被触发时#xff0c;会从DOM的根元素开始#xff0c;依次调用同名事件#xff08;从外到里#xff0c;从父到子#xff09;。 DOM.addEve…
一、事件流 事件流指的是事件完整执行过程中的流动路径分为捕获阶段、冒泡阶段。如上图
二、事件捕获 当一个元素的事件被触发时会从DOM的根元素开始依次调用同名事件从外到里从父到子。 DOM.addEventListener(事件类型, 事件处理函数, 是否使用捕获) true代表捕获触发 false/不传代表冒泡触发
三、事件冒泡 当一个元素的时间被触发时回一次向上调用所有父级元素的同名事件从里到外从子到父 。 阻止冒泡事件对象.stopPropagation()
bodydiv classfatherdiv classson/div/div
script const father document.querySelector(.father);const son document.querySelector(.son);father.addEventListener(click,function() {console.log(father)})son.addEventListener(click,function() {console.log(son)})
/script
/body bodydiv classfatherdiv classson/div/div
script const father document.querySelector(.father);const son document.querySelector(.son);father.addEventListener(click,function() {console.log(father)})son.addEventListener(click,function(e) {console.log(son)e.stopPropagation();})
/script
/body 四、事件委托 事件委托也叫事件委派、事件代理。就是将原本需要注册在子元素的事件委托给父元素让父元素担当时间监听的职务。 原理是利用时间冒泡的特点给父元素注册事件在触发子元素的时候会冒泡到父元素身上从而触发父元素的事件。 可以减少注册次数提高程序性能。 利用事件委托方式需要找到真正触发的元素事件对象.target.tagName
// 不使用事件委托
bodyulli1/lili2/lili3/lili4/lili5/lili6/li/ul
script const lis document.querySelectorAll(ul li)for (let i 0; i lis.length; i) {lis[i].addEventListener(click,function() {console.log(我被点击了)})}
/script
/body // 使用了事件委托
bodyulli1/lili2/lili3/lili4/lili5/lili6/li/ul
script const ul document.querySelector(ul)ul.addEventListener(click,function(){console.log(我下面的li被点击了)})
/script
/body