`

addEventListener的第三个参数

 
阅读更多

W3C DOM 里用来新增触发事件的函数叫AddEventListener ,不过我一直不知道这个函数的第三个参数是要做什么用的,总是随便设,也没发现差异再哪,前两天看ppk on javascript 终于看到说明了,至于很久以前就有的DOM的标准文件,我其实根本没去找过这个参数的资讯。

这个参数叫做useCapture ,是一个boolean值,就是true or false,如果送出true的话就是浏览器会使用Capture方式,false的话是Bubbling,只有在特定状况下才会有影响,通常建议是 false,而会有影响的情形是目标元素(target element)有祖先元素(ancestor element),而且也有同样的事件对应函数,我想,看图会比较清楚。

范例有两层的div方块

像这张图所 显示的,我的范例有两层div元素,而且都设定有click事件,一般来说,如果我在内层蓝色的元素上click不只会触发蓝色元素的click事件,还 会同时触发红色元素的click事件,而useCapture这个参数就是在控制这时候两个click事件的先后顺序。 如 果是false,那就会使用bubbling,他是从内而外的流程,所以会先执行蓝色元素的click事件再执行红色元素的click事件,如果是 true,那就是capture,和bubbling相反是由外而内,会先执行红色元素的click事件才执行蓝色元素的click事件。 附上两个范例, capture bubbling ,两个档案只有差在此一参数不同,可以发现事件的发生顺序不一样了。


那如果不同层的元素使用的useCapture不同呢? 就是会先从最外层元素往目标元素寻找设定为capture的事件,到达目标元素执行目标元素的事件后,再寻原路往外寻找设定为bubbling的事件。

分享到:
评论

相关推荐

    详解addEventListener的三个参数之useCapture

    第三个参数为 useCapture,本文就讲解它。 代码如下: ”outDiv”>  ”middleDiv”>  ”inDiv”>请在此点击鼠标。   ”info”> 代码如下: var outDiv = document.getElementById(“outDiv”); var middleDiv ...

    addEventListener()第三个参数useCapture (Boolean)详细解析

    3. **useCapture**:第三个参数是一个可选的布尔值,默认为 `false`。如果设置为 `true`,事件处理程序将在捕获阶段执行;如果为 `false`,则在冒泡阶段执行。捕获阶段从最外层的祖先元素开始,向下到目标元素;冒泡...

    attachEvent和addEventListener 使用方法

    这里的第三个参数是可选的,表示事件是否在捕获阶段处理(`true`)或在冒泡阶段处理(`false`,默认)。默认情况下,事件通常从最外层元素开始向下传播,即捕获阶段,然后到达目标元素并开始冒泡回顶部,这个过程...

    window.addEventListener来解决让一个js事件执行多个函数

    第三个参数`useCapture`在此处通常设为`false`,表示在冒泡阶段调用事件处理函数。 此外,对于DOM元素的事件处理,如按钮点击事件,也可以使用相同的方法。例如,对于一个ID为"btn1"的按钮,我们希望在点击时执行`...

    document.addEventListener使用介绍

    3. **第三个参数**:可选的布尔值,用于指定事件处理程序的执行顺序。默认值为`false`。如果设置为`true`,事件处理程序将在捕获阶段执行;如果设置为`false`,则在冒泡阶段执行。在这个上下文中,"捕获阶段"意味着...

    javascript attachEvent和addEventListener使用方法

    使用 addEventListener 方法时,还可以指定第三个参数 `useCapture`,这个参数是一个布尔值,表示事件监听器是在捕获阶段还是冒泡阶段被调用。如果设置为 `true`,则在捕获阶段调用;如果设置为 `false`,则在冒泡...

    JS在IE和FF下attachEvent,addEventListener学习笔记

    函数名,记住不要跟括号最后一个参数是个布尔值,表示该事件的响应顺序,下面重点介绍一下addEventListener的第3个参数(useCapture)。 userCapture若为true,则浏览器采用Capture,若为false则采用bubbing方式。建议用...

    JS中onclick与addEventListener的区别详解

    第三个参数是一个布尔值,用于指定事件传播模式,默认是`false`表示冒泡阶段,`true`表示捕获阶段。 - 移除事件:使用`removeEventListener`方法,需要提供相同的事件名和处理函数来移除事件。匿名函数添加的事件...

    Actionscript监听事件传多个参数

    最后看第三段代码: ```actionscript btn.addEventListener(BookEvent.ADDBOOK, create("", "1", "2")); // 示例用法 btn.addEventListener(BookEvent.ADDBOOK, create(getName, name)); ``` 这里展示了`create`函数...

    addeventlistener监听scroll跟touch(实例讲解)

    特别需要提到的是,`addEventListener`方法还支持一个可选的第四参数,一个配置对象,用于设置一些可选的参数。例如,当监听滚动事件时,可以通过配置对象的`passive`属性来指定是否阻止默认的滚动行为。 在移动端...

    全面了解addEventListener和on的区别

    第三个参数是一个布尔值,如果为 `true`,则事件处理程序会在捕获阶段执行;如果为 `false`(默认),则在冒泡阶段执行。例如: ```javascript // 捕获阶段执行 box.addEventListener("click", function() { ...

    19-FUNCTION-ADDEVENTLISTENER-EVENT-BUBBLE

    在`addEventListener`的第三个参数中设置`true`,可以指定事件在捕获阶段处理: ```javascript element.addEventListener('click', function(event) { console.log('Event captured!'); }, true); ``` 事件处理...

    js代码-js的addEventListener兼容性代码

    此外,它还提供了一个可选的第三个参数`useCapture`,用于指定事件捕获阶段是否执行该回调。 在IE8及更低版本中,替代`addEventListener`的方法是`attachEvent`。它的语法略有不同,需要将事件处理函数作为第一个...

    android新闻消息推送功能

    2. **第三方推送平台**:例如Google的Firebase Cloud Messaging (FCM)、极光推送、个推等。这些平台提供了完整的SDK和服务,简化了推送的实现过程,开发者只需要集成SDK并配置相关参数,即可轻松实现消息推送。 接...

    JS中把函数作为另一函数的参数传递方法(总结)

    在JavaScript编程中,函数是一种第一类对象,这意味着它们可以被赋值给变量、作为参数传递给其他函数,或者作为其他函数的返回值。这种特性使得JavaScript具有高度的灵活性和强大的功能。本文将深入探讨如何在...

    Javascript attachEvent传递参数的办法

    但是在IE浏览器中,使用attachEvent时就会遇到问题,因为attachEvent并不允许直接在绑定时传递第三个参数。其原因是attachEvent在调用事件处理函数时不会传入事件对象,而是使用全局window对象作为this值,这导致在...

    第三课 高级函数1

    回调函数接收三个参数:当前元素、元素索引和原数组,我们可以根据需求进行操作,例如在本例中,将数组中的每个元素后都追加'666666'。 `filter`函数则根据提供的测试函数来筛选数组中的元素,返回一个只包含满足...

Global site tag (gtag.js) - Google Analytics