首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

非顺序事件冒泡onClick与addEventListener

是JavaScript中处理事件的两种方式。

  1. 非顺序事件冒泡(Non-sequential Event Bubbling):
    • 概念:非顺序事件冒泡是指在JavaScript中,当一个元素上发生了某个事件(如点击事件),事件会从最内层的元素开始触发,然后逐级向外冒泡,直到达到最外层的元素。
    • 分类:非顺序事件冒泡属于事件传播的一种方式,与之相对的是顺序事件捕获(Sequential Event Capturing)。
    • 优势:非顺序事件冒泡机制使得事件处理更加灵活,可以在父元素上统一处理多个子元素的相同事件,减少重复代码。
    • 应用场景:非顺序事件冒泡适用于需要在父元素上监听子元素事件的情况,例如在一个列表中的每个列表项上都有点击事件,可以将点击事件监听在列表的父元素上,通过事件冒泡机制捕获到具体点击的列表项。
    • 推荐的腾讯云相关产品:腾讯云函数(云函数是一种事件驱动的计算服务,可以用于处理事件触发的业务逻辑。)
  • onClick与addEventListener:
    • onClick:onClick是一种直接在HTML元素上绑定事件处理函数的方式,通过在元素的属性中指定JavaScript代码来定义事件处理逻辑。例如:<button onClick="handleClick()">点击按钮</button>
    • addEventListener:addEventListener是JavaScript中的方法,用于在元素上添加事件监听器,以便在事件触发时执行相应的处理函数。它可以在元素上同时添加多个不同类型的事件监听器,并且支持更灵活的事件处理方式。例如:element.addEventListener('click', handleClick)
    • 区别:onClick是一种简单直接的事件绑定方式,但只能绑定一个事件处理函数,并且会覆盖之前的绑定;而addEventListener可以绑定多个事件处理函数,并且不会覆盖之前的绑定,还可以通过第三个参数指定事件处理的阶段(捕获阶段、冒泡阶段)。
    • 推荐的腾讯云相关产品:腾讯云云函数(云函数可以通过编写事件处理函数来响应特定的事件,例如HTTP请求事件、消息队列事件等)。

参考链接:

  • 腾讯云函数产品介绍:https://cloud.tencent.com/product/scf
  • JavaScript事件冒泡与捕获:https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Building_blocks/Events#%E4%BA%8B%E4%BB%B6%E5%86%92%E6%B3%A1%E4%B8%8E%E6%8D%95%E8%8E%B7
  • JavaScript addEventListener方法:https://developer.mozilla.org/zh-CN/docs/Web/API/EventTarget/addEventListener
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

onclickaddEventListener区别

具体的事件分析可查看另一篇文章 结论: 1.onclick事件在同一时间只能指向唯一对象 2.addEventListener给一个事件注册多个listener 3.addEventListener对任何...DOM都是有效的,而onclick仅限于HTML 4.addEventListener可以控制listener的触发阶段,(捕获/冒泡)。...对于多个相同的事件处理器,不会重复触发,不需要手动使用removeEventListener清除 5.IE9使用attachEvent和detachEvent 探究: onclick添加事件: element.onclick...对于IE9之前,相对应的是attachEvent和detachEvent 总结: 1.onclick事件在同一时间只能指向唯一对象 2.addEventListener给一个事件注册多个listener...3.addEventListener对任何DOM都是有效的,而onclick仅限于HTML 4.addEventListener可以控制listener的触发阶段,(捕获/冒泡)。

1.5K10

FLEXFLASH-冒泡事件冒泡事件

刷新页面 点击“外部BTN” 结果如图所示 因为事件的引发者没有在panl1中所以不会再触发panel1的事件了 以上说的都是非冒泡事件事件的执行顺序是从外层容器到内层容器执行的 5....如果要在事件冒泡阶段捕捉事件 创建事件的代码为 var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一个参数bubbles应为...是false 这样设置后就是冒泡事件事件的执行顺序是从内层容器到外层容器执行的 6....如果即要捕捉冒泡事件,又要捕捉冒泡事件 那么 创建事件的代码为 var Event:btnEvent1=new btnEvent1(btnEvent1.EVENT_NAME,true);//最后一个参数...);//冒泡监听 this.panel1.addEventListener(btnEvent1.EVENT_NAME,panelCatchEvent,false);//冒泡监听 这样设置之后,事件先从外部执行到内部

89210
  • js添加事件和移除事件:addEventListener()removeEventListener()

    另有js事件详解 点击打开链接 一.addEventListener()和removeEventListener()讲解 addEventListener()removeEventListener...而传入removeEventListener()中的事件处理程序函数必须addEventListener()中的相同 正确用法示例: function bodyScroll(event){...,需要使用共用函数;绑定和解除事件事件没有”on” 即onclick写成click 2:共用函数不能带参数; 二.addEventListener()removeEventListener()的第三个参数详解...布尔值参数是true,表示在捕获阶段调用事件处理程序;就是最不具体的节点先接收事件,最具体的节点最后接收事件 如果是false,在冒泡阶段调用事件处理程序;则是先寻找指定的位置,由最具体的元素接收...,然后逐级向上传播至最不具体的元素的节点(文档) DOM事件流如图(剪自javascript高级程序设计): 由图可知捕获过程要先于冒泡过程 即 true的触发顺序在false前面

    8.1K30

    事件冒泡事件捕获

    javascript 的事件捕获和事件冒泡之前一直没能弄明白,知道看到一个例子。...当石头到达池塘底部(事件被捕获)之后,产生了一个气泡,然后就开始了冒泡阶段 由底部(目标元素)产生的气泡,由内而外,不断向上冒泡,直到最外面(html标签)结束。...点击可查看示例 去示例中试一试便清楚了~ 处理事件 理解了事件的捕获和冒泡机制,对于事件处理就好办了。...**/ element.addEventListener(event, functionEvent, useCapture) 事件事件处理函数很好理解。...,比如是在‘石头’下沉或者‘气泡’冒泡的过程中使之突然消失 事件代理: 从上面事件机制可以看出,如果没有外部干扰,在子节点上触发的事件,在捕获和冒泡最终都会经过父节点 因此,我们可以将事件处理函数绑定在父节点上面

    1.7K10

    事件

    onclick="showMessage();" /> 在HTML中指定事件处理程序书写很方便,但是有两个缺点: 存在加载顺序问题,如果事件处理程序在html代码之后加载,用户可能在事件处理程序还未加载完成时就点击按钮之类的触发事件...').onclick = function (e) { e.preventDefault(); } stopPropagation()方法可以停止事件在DOM层次的传播,即取消进一步的事件捕获或冒泡...2: attachEventaddEventListener的区别?...参数个数不相同,这个最直观,addEventListener有三个参数,attachEvent只有两个,attachEvent添加的事件处理程序只能发生在冒泡阶段,addEventListener第三个参数可以决定添加的事件处理程序是在捕获阶段还是冒泡阶段处理...是window,所以刚才例子才会返回undefined,而不是元素id 为一个事件添加多个事件处理程序时,执行顺序不同,addEventListener添加会按照添加顺序执行,而attachEvent添加多个事件处理程序时顺序无规律

    1.4K30

    微信小程序的冒泡冒泡、捕获、捕获阻止、互斥事件

    冒泡事件和捕获事件 冒泡事件是,进行 捕获事件是从外向内,从大到小 冒泡事件bindtap one <view...测试 点击 区域,事件会从内到外从小到大Console`控制台显示 捕获事件capture-bind:tap <view id="one" class="one" capture-bind:tap="_...测试 点击 three区域,<em>事件</em>会从外到到,从大到小进行传递,Console`控制台显示 <em>非</em><em>冒泡</em><em>事件</em>和捕获阻止<em>事件</em> <em>非</em><em>冒泡</em><em>事件</em>catchtap <view id="one" class="one" bindtap...测试 点击 three区域,事件从内到外传递被阻止,Console控制台显示 捕获阻止事件capture-catch:tap <view id="one" class="one" capture-catch...测试 点击 three区域,互斥事件绑定 一个 mut-bind 触发后,如果事件冒泡到其他节点上,其他节点上的 mut-bind 绑定函数不会被触发,但 bind 绑定函数和 catch 绑定函数依旧会被触发

    1.2K40

    JavaScript绑定事件的三种方式

    使用内联 使用.onclick的方式 使用事件监听addEventListener的方式 内联 形式: <input type="button" value="按钮" onclick="alert(1...捕获和冒泡会影响到事件的执行顺序 var a = document.getElementById("a"); var b = document.getElementById("b"); var c =...事件绑定就此结束。下面说说取消事件绑定吧。如果要取消一个使用addEventListener绑定的事件函数,使用removeEventListener可以移除事件。 ? 添加事件一致。...这里有涉及到一个阻止事件的默认行为:preventDefault或者是前面提到的return false 对于IE下的事件绑定 适用IE6,7,8 IE的事件模型W3C的标准事件相比,主要是以下三点不同...IE中this指向window 更新2017年12月2日14:30:05 关于使用addEventListener 给元素添加事件一般使用addEventListener的方式来添加,这样才可以个一个元素添加多个事件

    62830

    面试官:考你几个简单的事件问题吧

    onclick是DOM0级事件处理方式,而addEventListener是DOM2级事件处理方式,所以兼容性onclick会更好一些(虽然现在addEventListener也不会有什么问题)。...addEventListenerattachEvent有什么不同?...attachEvent如果添加多个事件处理程序那么先执行后添加的后执行先添加的,这与addEventListener恰好相反(IE9和IE10修改了执行顺序addEventListener一样了,先添加的先执行...点击一下键盘前后会调用那些事件? keydown > keypress > keyup(注意这里click的区别)。 按下键盘一直不放前后会调用那些事件?...中间4个事件的执行,都是处于目标阶段,目标阶段会按照事件的添加顺序来执行,而不会管你是否是捕获还是冒泡。 如何让一个事件冒泡后捕获?

    1.1K30

    一次关于js事件出发机制反常的解决记录

    // type :字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。...冒泡阶段:事件对象通过目标的祖先中传播以相反的顺序,开始目标的父和所述结束窗口。这个阶段也被称为冒泡阶段。...这个类别中的事件被认为是可取消的,他们取消的行为被称为他们的默认行为。 取消事件:可取消的事件对象可以一个或多个“默认动作”相关联。要取消事件,请调用该preventDefault()方法。...//原生js,只会阻止默认行为,不会停止冒泡 var a = document.getElementById("testA"); a.onclick = function(){ return false...当需要停止冒泡行为时 function stopBubble(e) { //如果提供了事件对象,则这是一个IE浏览器 if ( e && e.stopPropagation ){

    1.5K50

    【微信小程序】冒泡事件冒泡事件、将文章数据从业务中分离、wxml的模块化

    今日学习目标:第十四期——冒泡事件冒泡事件、将文章数据从业务中分离、wxml的模块化 创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:30分钟 专栏系列:我的第一个微信小程序...---- 文章目录 前言 冒泡事件冒泡事件 常见的冒泡事件类型 将文章数据从业务中分离 data.js post.js 使用require引入js模块注意事项 wxml的模块化 如何使用模板...上期我们实现了从welcome页面跳转到page页面,本期我们先对上期内容进行一个补充知识点,也就是冒泡事件冒泡事件的定义。...注意:每期内容是连载呢,建议大家可以看看往期内容,更好理解噢~ ---- 冒泡事件冒泡事件 冒泡事件是指某个组件上的时间被触发后,事件还会向父级元素传递;父级元素还会继续向父级的父级传递,一直到页面的顶级元素...catch将阻止事件继续向父节点传播,而bind不会阻止事件的传播。 冒泡事件大多数不是通用事件,而是某些组件特有的事件。如的input事件等。

    64020

    JS事件流模型

    事件冒泡阶段bubbling phase事件从目标元素冒泡到document,依次执行经过的节点绑定的事件。...DOM2级模型 DOM2事件模型是W3C制定的标准模型,支持捕获型事件冒泡事件,调用事件的处理阶段依次为捕获、目标、冒泡。...实例 当点击id为i3的时,浏览器会依次弹出0 1 3 2,addEventListener方法的第三个参数为声明绑定的事件为捕获型还是冒泡型,默认为false,也就是冒泡型。 { alert(3); }) document对象i1节点绑定的是捕获型的监听事件,i2i3节点绑定的是冒泡型的事件事件传递的顺序为...,本例中执行了alert(0)alert(1),然后到达目标阶段的i3,执行i3绑定的事件alert(3),然后从i3到window的阶段为冒泡阶段,执行了绑定的alert(2),执行顺序即为0 1

    1.6K30

    JS事件流、事件冒泡、阻止冒泡事件捕获(一看就懂)

    事件冒泡 、阻止冒泡事件捕获 之前先说说什么是事件流,这样会更容易明白 一、事件事件流 1、什么是事件 事件是可以被 JavaScript 侦测到的行为。...鼠标点击、鼠标移动、鼠标滚动、按下键盘,浏览器窗口大小的改变,网页加载完成,关闭网页等等都会发生事件。 2、什么是事件事件流,描述的是页面中接受事件顺序。...三、阻止冒泡 1、JS阻止事件冒泡 我们用 e.stopPropagation() 这个方法添加到某事件函数里的末尾,就可以做到阻止冒泡事件。...讲事件捕获之前先了解下addEventListener()方法: addEventListener()定义用法 document.addEventListener() 方法用于向文档添加事件句柄。...,和之前的顺序就不一样了。

    14.3K64

    DOM事件基本概念大总结(前端必备)

    这一个过程也称为事件冒泡 事件捕获 事件冒泡刚好相反,事件从最外层的 documet 开始一直往里面,直到点击的元素才停止 <.../xxx.js`; }) unload 事件 load 事件相反,一般页面切换后触发,可用来强制的引用清除,防止内存泄漏 window.addEventListener('unload', function...焦点事件标准不一,但是 DOM3 统一了一个标准并且规定了它的发生顺序 当一个元素移动到另一个元素会依次触发以下事件;一般 blur focus 常见 focusout 在失去焦点元素上触发...不会冒泡 DOMFocusIn 在获取焦点元素上触发,会冒泡; Opera 专有 鼠标滚轮事件 鼠标点击移动 主要是点击、双击、光标移入、移出、暗下、放开的操作; mouseenter 首次移入元素内部触发...click 点击,只有按下事件和放开事件发生后才会触发,只是按下不会触发 dblclick 双击,当且仅当连续两次 click 时触发 触发顺序: mousedown mouseup click

    1.9K20

    关于DOM事件流、DOM0级事件DOM2级事件

    三、事件流 浏览器在为当前页面用户做交互的过程中,比如点击鼠标左键,会出现这个左键是怎么传到页面上,还有怎么响应的问题。...事件流所描述的就是从页面中接受事件顺序事件流分为两种:事件冒泡(主流)和事件捕获 1、事件冒泡 image.png 事件开始时由具体元素接收,然后逐级向上传播到父元素 举个例子: 元素上发生,然后逐级向上传播,这就是事件冒泡 2、事件捕获 image.png 父元素的节点更早接收事件,而具体元素最后接收事件事件冒泡相反...四、阻止事件冒泡 事件冒泡过程,是可以被阻止的。...不难看出,事件在到达具体元素后,停止了冒泡,但不影响父元素的事件捕获 五、DOM0级事件 DOM0级事件,就是直接通过 onclick 等方式实现相应的事件 1、标签内写 onclick 事件 <input

    2K20

    事件监听函数,以及事件的捕获和冒泡机制

    事件经过的所有节点都会受到事件的影响,这个传播过程被称为DOM事件流 true是捕获,false是冒泡,默认为冒泡事件 1.addEventListener()--添加事件监听函数 给元素添加一个事件...3.利用事件的捕获和冒泡做点事情 addEventListener()和removeEventListener()其实拥有三个参数,刚才说过了,第一个表示触发条件,第二个表示触发事件,第三个参数正常情况下可以省略...('click',function(){alert("我是最里面的");},true); 4.事件处理程序 HTML事件处理程序 测试...,能够访问全局作用域中的任何变量 2.缺点:时差问题、扩展的作用域链在不同浏览器中会导致不同结果、html代码js代码高度耦合 DOM0级事件处理程序 测试</button..."); }, true); btn.addEventListener("click", function() { alert("DOM2级事件处理程序,我在冒泡阶段执行

    1.2K10
    领券