国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

【原生JS】addEventListener 和 on 的區(qū)別

2024-04-27 15:14:31
字體:
供稿:網(wǎng)友

這里寫圖片描述

為什么需要addEventListener?

先來看一個片段: html代碼

<div id="box">追夢子</div>

用on的代碼

window.onload = function(){ var box = document.getElementById("box"); box.onclick = function(){ console.log("我是box1"); } box.onclick = function(){ box.style.fontSize = "18px"; console.log("我是box2"); }}運行結(jié)果:“我是box2”

看到了吧,第二個onclick把第一個onclick給覆蓋了,雖然大部分情況我們用on就可以完成我們想要的結(jié)果,但是有時我們又需要執(zhí)行多個相同的事件,很明顯如果用on完成不了我們想要的,那不用猜,你們肯定知道了,對!addEventListener可以多次綁定同一個事件并且不會覆蓋上一個事件。

用addEventListener的代碼

window.onload = function(){ var box = document.getElementById("box"); box.addEventListener("click",function(){ console.log("我是box1"); }) box.addEventListener("click",function(){ console.log("我是box2"); })}    運行結(jié)果:我是box1         我是box2

addEventListenert方法第一個參數(shù)填寫事件名,注意不需要寫on,第二個參數(shù)可以是一個函數(shù),第三個參數(shù)是指在冒泡階段還是捕獲階段處理事件處理程序,如果為true代表捕獲階段處理,如果是false代表冒泡階段處理,第三個參數(shù)可以省略,大多數(shù)情況也不需要用到第三個參數(shù),不寫第三個參數(shù)默認(rèn)false

第三個參數(shù)的使用

有時候的情況是這樣的

<body>  <div id="box">    <div id="child"></div>  </div></body>

如果我給box加click事件,如果我直接單擊box沒有什么問題,但是如果我單擊的是child元素,那么它是怎么樣執(zhí)行的?(執(zhí)行順序)

box.addEventListener("click",function(){ console.log("box");})child.addEventListener("click",function(){ console.log("child");})  執(zhí)行的結(jié)果:        child        box

也就是說,默認(rèn)情況事件是按照事件冒泡的執(zhí)行順序進(jìn)行的。 如果第三個參數(shù)寫的是true,則按照事件捕獲的執(zhí)行順序進(jìn)行的。

box.addEventListener("click",function(){ console.log("box");},true)child.addEventListener("click",function(){ console.log("child");})  執(zhí)行的結(jié)果:        box        child

事件冒泡執(zhí)行過程:從最具體的的元素(你單擊的那個元素)開始向上開始冒泡,拿我們上面的案例講它的順序是:child->box 事件捕獲執(zhí)行過程:從最不具體的元素(最外面的那個盒子)開始向里面冒泡,拿我們上面的案例講它的順序是:box->child


上一篇:js獲取url參數(shù)

下一篇:ajax與跨域

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 清水河县| 唐山市| 高清| 靖边县| 潼南县| 徐州市| 东乡| 枞阳县| 突泉县| 星子县| 栾川县| 信宜市| 邛崃市| 上杭县| 特克斯县| 广安市| 同江市| 黄陵县| 勃利县| 盐源县| 深泽县| 调兵山市| 敦煌市| 平乡县| 庆元县| 九江市| 双辽市| 海城市| 枣庄市| 南城县| 武宁县| 邮箱| 临桂县| 渑池县| 广丰县| 略阳县| 翁牛特旗| 星子县| 泗水县| 南溪县| 宣威市|