js-addEventListener()第三个参数useCapture

概述:

  第3个参数叫做useCapture,是一個boolean值,就是true or false 。如果送出true的話就是瀏覽器會使用Capture方式,false的話是Bubbling,只有在特定狀況下才會有影響,通常建議是false,而會有影響的情形是目標元素(target element)有祖先元素(ancestor element),而且也有同樣的事件對應函數

html片段

    <div id="div1" style="background: blue;width: 100px; height: 100px;">
        <div id="div2" style="background: red;width: 70px; height: 70px;">
            <div id="div3" style="background: yellow;width: 50px; height: 50px;"></div>
        </div>
    </div>

js代码

var oDvi1 = document.getElementById(‘div1‘),
    oDvi2 = document.getElementById(‘div2‘),
    oDvi3 = document.getElementById(‘div3‘);

// 123 -> 456 -> 345
oDvi1.addEventListener(‘click‘, xx1, true);
oDvi2.addEventListener(‘click‘, xx2, false);
oDvi3.addEventListener(‘click‘, xx3, true);

function xx1(){ //蓝
    alert(123);
}

function xx2(){ //红
    alert(345);
}

function xx3(){//黄
    alert(456);
}

总结:

在div3上触发点击事件

捕获阶段: 外-》里 * 在div1处检测 useCapture 是否为true,是则执行程序, div2同理 .

目标阶段: 目标到div3处,发现div3就是鼠标点击的节点, 所以这里是目标阶段。若有事件处理程序,则执行该程序,这里不论 useCapture 为 true 还是 false。

冒泡阶段: 里-》外  在div2处检测useCapture 是否为false, 是则执行该程序 . div1同理

js-addEventListener()第三个参数useCapture

时间: 2024-08-14 01:19:06

js-addEventListener()第三个参数useCapture的相关文章

addListener添加事件监听器,第三个参数useCapture (Boolean) 的作用

addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文就讲解它. <div id="outDiv"> <div id="middleDiv"> <div id="inDiv">请在此点击鼠标.</div> </div> </div>

addEventListener 的三个参数

addEventListener 有三个参数:第一个参数表示事件名称(不含 on,如 "click"):第二个参数表示要接收事件处理的函数:第三个参数为 useCapture,本文就讲解它. <div id="outDiv">   <div id="middleDiv">     <div id="inDiv">请在此点击鼠标.</div>   </div> <

js中addEventListener第三个参数涉及到的事件捕获与冒泡

js中,我们可以给一个dom对象添加监听事件,函数就是 addEventListener("click",function(){},true); 很容易理解,第一个参数是事件类型,比如点击(click).触摸(touchstart), 第二个参数就是事件函数, 比如我给一个button添加alert函数. window.onload=function(){ document.getElementById("hello").addEventListener("

JavaScript addEventListener 第三个参数作用

DOM方法 addEventListener() 和 removeEventListener()是用来分配和删除事件的函数. 这两个方法都需要三个参数,分别为: 事件名称(String).要触发的事件处理函数(Function).指定事件处理函数的时期或阶段(boolean). <!--打开新的浏览器窗口--> <button id="New" onclick="">点击弹窗</button> <!--关闭新的浏览器窗口--

js addEventListener removeEventListener

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px "Helvetica Neue"; color: #454545 } li.li2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 } li.li3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px &quo

js Dom(三)节点、元素创建3种方式、为元素绑定多个事件addEventListener、attachEvent

目录: 1.节点的概念    2.节点的属性(nodeType,nodeName,nodeValue)    3.父节点(父元素)    4.获取子节点或子元素    5.获取节点.元素的方法(12行代码)    6.案例:div标签里面的p标签背景高亮(使用子节点或子元素的方式)    7.封装节点兼容代码    8.案例:切换背景图片    9.案例:全选.全不选    10.元素创建的第一种方式  document.write("<p>文本</P>"); 

[转]addEventListener的第三个参数

如果要把HTML元素的事件与某个函数绑定起来,可以有下面三种方法,以最常见的“点击”事件为例. 方法一: 直接在对应的HTML元素标签上绑定函数 ? 1 <button id='submit' onclick='onClickFn()'>Click Me!</button> 方法二: 在JavaScript代码里面指定元素的“onclick”方法 ? 1 2 3 var btn = document.getElementById('submit'); btn.onclick = o

JS 微信判断及分享参数修改

var iswechat = (window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'); var cloc = location.href.replace(/^#/, "").replace(/[^\/]*\.[^\/*]+$/, ""); var mainTitle = "", mainDesc = "",

js数组(三)

今天写第三题: rt:移除数组汇总的元素,但是不能修改原数组 如: var arr = [1,2,3,4,5]; //传入5 //返回 [1,2,3,4] //console.log(arr) //返回[1,2,3,4,5] 之前说过数组的处理方法 先解题: 1.一般循环 var arr = [1,2,3,4,5]; var num = []; function removes(val){ for(let i = 0;i<arr.length;i++){ if(arr[i] != val){ n