關(guān)于點擊事件onclick 和 addEventListener的思考

關(guān)于點擊事件onclick 和 addEventListener的思考

基本寫法

box.onclick = function(){
    console.log('onclick 點擊');  
}

box.addEventListener('click', function(){
    console.log('EventListener 點擊');
});

onclick 和 addEventListener 聯(lián)系

兩者都可以監(jiān)聽到點擊事件

onclick 和 addEventListener 區(qū)別

on執(zhí)行事件的特點:

如果多次執(zhí)行,會覆蓋掉之前的執(zhí)行,只保留最后一次

addEventListener執(zhí)行事件的特點:

所有的事件都會被觸發(fā),遵循的是冒泡規(guī)律

addEventListener

語法

element.addEventListener(event, function, useCapture)

參數(shù)值
參數(shù) 描述
event 必須:指定事件名
function 必須:指定事件觸發(fā)時執(zhí)行的函數(shù)
useCapture 可選: 布爾值. true 事件句柄在捕獲階段執(zhí)行 false 事件句柄在冒泡階段執(zhí)行

需求一:

假如有一個盒子,在頁面的某一個地方,我需要監(jiān)聽盒子的點擊。在請求完之后,我需要再次監(jiān)聽盒子的點擊。也就是說,盒子會被多次點擊,但是每次點擊執(zhí)行的東西不一樣。

可以這樣寫:

box.onclick = function(){
     console.log('onclick 電擊');
}

box.onclick = function(){
    console.log('onclick 二次點擊');
}

思考一下,這樣寫有沒有邏輯問題?語法問題?執(zhí)行后是什么效果?

答案是:始終執(zhí)行第二次,第一次點擊被覆蓋掉了

真正的需求是,每次點擊都必須監(jiān)聽到,所以嘞?

box.addEventListener('click', function(){
    console.log('EventListener 點擊');
});

box.addEventListener('click', function(){
    console.log('EventListener 二次點擊');
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 聲明:本文來源于http://www.webzsky.com/?p=731我只是在這里作為自己的學(xué)習(xí)筆記整理一下(...
    angryyan閱讀 7,239評論 1 6
  • 知識點整理來源于網(wǎng)上。詳細(xì)的介紹推薦直接看API文檔。 DOM 功能 對元素的增查刪改① 查詢某個元素② 查詢某個...
    紙簡書生閱讀 512評論 0 0
  • 以下文章為轉(zhuǎn)載,對理解JavaScript中的事件處理機制很有幫助,淺顯易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy閱讀 3,162評論 1 10
  • HTML DOM 使 JavaScript 有能力對 HTML 事件做出反應(yīng)。如下的代碼: 點擊文本,文字會變...
    路墨閱讀 411評論 0 2
  • 我再一次弄丟了它們,我尋找整個房間以及所有我經(jīng)過的路,我很少去更遠(yuǎn)的地方,總是兩點一線,但即使這樣沿途依舊找不到,...
    常懶zZ閱讀 235評論 0 1

友情鏈接更多精彩內(nèi)容