tft每日頭條

 > 圖文

 > 前端按鈕事件有哪些

前端按鈕事件有哪些

圖文 更新时间:2025-04-28 22:07:43
語法

dom.addEventListener(事件名稱,事件處理函數,布爾值)

參數

  • 事件名稱 是一個字符串,需要加引号
  • 事件處理函數(事件句柄函數)既可以是命名函數,也可以是匿名函數
  • 布爾值
  • true 事件處理函數是在事件的捕獲階段發生的
  • false 事件處理函數是在事件的冒泡階段發生的(默認值,如果不寫默認為false)

特性

  • 可以通過第三個參數-布爾值來對事件處理函數調用的時機進行操控
  • 既可以調用命名函數,也可以調用匿名函數(最好為命名函數

btn.addEventListener('click',function(){ console.log(1); },false); btn.addEventListener('click',fn1,false); //調用時直接寫函數名稱即可 function fn1(){ console.log(1); };

前端按鈕事件有哪些(說說事件綁定中的addEventListener)1

可以給元素添加多個事件,且不會互相覆蓋:

btn.addEventListener('click',function(){ console.log(1); },false); btn.addEventListener('click',function(){ console.log(2); },false); //這段代碼最後會在控制台同時輸出1和2

前端按鈕事件有哪些(說說事件綁定中的addEventListener)2

this指向當前元素:

<body> <input type="button"> </body> btn.addEventListener('click',function(){ console.log(this); //<input type="button"> },false);

移除方法

dom.removeEventListener(事件名稱,事件處理函數,布爾值)

直接移除:

btn.addEventListener('click',fn1,false); function fn1(){ console.log(1); //事件綁定被移除,無論怎麼點擊按鈕都無法在控制台輸出内容 }; btn.removeEventListener('click',fn1,false);

前端按鈕事件有哪些(說說事件綁定中的addEventListener)3

執行一次後移除:

btn.addEventListener('click',fn1,false); function fn1(){ console.log(1); //事件執行一次後被移除,隻會輸出一次1 btn.removeEventListener('click',fn1,false); };

前端按鈕事件有哪些(說說事件綁定中的addEventListener)4

注意

  1. 該方法無法移除匿名函數的事件綁定
  2. 故在使用該方法時事件處理函數最好為命名函數

btn.addEventListener('click',function(){ // 匿名函數 console.log(1); //這裡重複點擊還是會在控制台輸出1 },false); btn.removeEventListener('click',function(){ // 匿名函數,但與上述匿名函數不是同一個函數 console.log(1); },false);

前端按鈕事件有哪些(說說事件綁定中的addEventListener)5

該方法移除時,所有參數必須相同:

btn.addEventListener('click',fn1,false); function fn1(){ console.log(1); }; btn.removeEventListener('click',fn1,true); //由于這裡移除時第三個參數為true,與上面不同,點擊後還是會輸出1

阻止事件冒泡:

event.stopPropagation()方法

btn.addEventListener('click',fn1,false); function fn1(ev){ ev.stopPropagation(); };

再重申一遍,沒有fn1,直接寫匿名函數時,無法解綁。有命名函數,移除操作時,所有參數必須相同。


歡迎關注

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved