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

首頁 > 開發 > JS > 正文

JS事件綁定的常用方式實例總結

2024-05-06 16:48:39
字體:
來源:轉載
供稿:網友

本文實例講述了JS事件綁定的常用方式。分享給大家供大家參考,具體如下:

常用的事件綁定的幾種方式有三種:

  • 直接在 dom 元素上進行綁定。
  • 用 on 綁定。
  • 用 addEventListener、attachEvent 綁定。

一、直接在 dom 元素上進行綁定

<input id="btn1" type="button" onclick="test();" />

二、用 on 綁定

兼容性:在IE,FF,Chrome,Safari,Mozilla,Opera下都適用。

// onclick綁定document.body.onclick = () => {  console.log(111)}// 解綁document.body.onclick = null;

但是,同一個 dom 元素上,on 只能綁定一個同類型事件,后者會覆蓋前者,不同類型的事件可以綁定多個。

三、用 addEventListener、attachEvent 綁定

同一個 dom 元素上,用 addEventListener、attachEvent 可以綁定多個同類型事件。

但是,addEventListener 事件執行順序按照事件綁定的先后順序執行;attachEvent 事件執行順序則是隨機的。

addEventListener

// 綁定document.body.addEventListener('click', bodyClick, false);// 解綁document.body.removeEventListener('click', bodyClick, false);

注意:removeEventListener 第二個參數要和 addEventListener 指向同一個函數才能解綁成功。

addEventListener 的第三個參數若為 false,函數在冒泡階段執行;若為 true,函數在捕獲階段執行。默認為 false。

<div id="box">   <div id="child"></div></div>
box.addEventListener("click", function(){  console.log("box");}, false);child.addEventListener("click", function(){  console.log("child");});// 執行順序為 child box
box.addEventListener("click", function(){  console.log("box");}, true);child.addEventListener("click", function(){  console.log("child");});// 執行順序為 box child

兼容性

Chrome 和 FireFox 只支持 addEventListener;IE 只支持 attachEvent(IE11開始不支持了)。

所以必須對2種方法做兼容處理。原理是先判斷 attachEvent 是否為真,如果為真則用 attachEvent 綁定事件,否則用 addEventListener 綁定事件。

可以封裝一個函數做兼容性處理:

//dom綁定事件的元素,ev事件名,fn執行函數function myAddEvent(dom, ev, fn){  if(dom.attachEvent){    dom.attachEvent("on"+ev, fn);  }else {    dom.addEventListener(ev, fn, false);  }}myAddEvent(d1, "click", ()=>{  console.log(1111)});

另外

以上三種方式綁定的點擊事件都可以用下面這條語句觸發

document.getElementById("btn").click();

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 衡东县| 平定县| 鄂托克前旗| 华容县| 盐城市| 宜昌市| 玉山县| 克什克腾旗| 丰台区| 定结县| 兴仁县| 齐河县| 宜良县| 景泰县| 贵阳市| 绥德县| 九台市| 六枝特区| 克什克腾旗| 寿光市| 雷波县| 雅江县| 龙陵县| 云和县| 大石桥市| 重庆市| 霞浦县| 当阳市| 玉田县| 曲水县| 福鼎市| 北安市| 大洼县| 保山市| 思南县| 中阳县| 贵德县| 牙克石市| 剑河县| 炎陵县| 青河县|