91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

JavaScript中有哪些事件綁定的方式

發布時間:2021-06-17 15:44:21 來源:億速云 閱讀:119 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關JavaScript中有哪些事件綁定的方式,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

一、直接在 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中有哪些事件綁定的方式了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

黄龙县| 青神县| SHOW| 大丰市| 西和县| 阿合奇县| 万山特区| 阳谷县| 安乡县| 天峻县| 乐至县| 阳信县| 阿荣旗| 江永县| 五台县| 凤阳县| 华容县| 呼图壁县| 大同市| 长兴县| 登封市| 浪卡子县| 泗洪县| 宁阳县| 洮南市| 和平区| 丹东市| 仲巴县| 河南省| 图们市| 盖州市| 嘉义市| 雷州市| 龙游县| 乌鲁木齐县| 大竹县| 全椒县| 塘沽区| 平武县| 财经| 青冈县|