溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaScript中onclick和click有什么區(qū)別

發(fā)布時間:2021-10-15 10:24:21 來源:億速云 閱讀:145 作者:小新 欄目:開發(fā)技術

小編給大家分享一下JavaScript中onclick和click有什么區(qū)別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

為什么需要 addEventListener?

先來看一個片段:

<div id ="box">測試</div>

用 on 的代碼:

windwo.onload = function(){
  var box = document.getElementById("box");
  box.onclick = ()=>console.log("我是 box1");
  box.onclick = ()=>console.log("我是 box2");
}
// 運行結果 : 我是 box2

看到了吧,第二個 onclick 事件把第一個onclick 給覆蓋了,雖然大部分情況我們用 on 就可以完成我們想要的效果,但是有時我們又需要執(zhí)行多個相同的事件,很明顯如果用 on 是無法實現(xiàn)的。但是可以使用 addEventListener 實現(xiàn)多次綁定同一個事件并且不會覆蓋上一個事件。

用 addEventListener 的代碼

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

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

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

有時候的情況是這樣的:

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

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

box.addEventListener("click",()=>console.log("box"));
child.addEventListener("click",()=>console.log("child"));
// 執(zhí)行結果:child -> box

也就是說,默認情況是按照事件冒泡的執(zhí)行順序進行的

JavaScript中onclick和click有什么區(qū)別

如果第三個參數(shù)寫的是 true,則按照事件捕獲的執(zhí)行順序進行

JavaScript中onclick和click有什么區(qū)別

以上是“JavaScript中onclick和click有什么區(qū)別”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI