JS事件綁定的常用方式實例總結
本文實例講述了JS事件綁定的常用方式。分享給大家供大家參考,具體如下:
常用的事件綁定的幾種方式有三種:
- 直接在 dom 元素上進行綁定。
- 用 on 綁定。
- 用 addEventListener、attachEvent 綁定。
一、直接在 dom 元素上進行綁定
<input id="btn1" type="button" onclick="test();" />
二、用 on 綁定
兼容性:在IE,F(xiàn)F,Chrome,Safari,Mozilla,Opera下都適用。
// onclick綁定
document.body.onclick = () => {
console.log(111)
}
// 解綁
document.body.onclick = null;
但是,同一個 dom 元素上,on 只能綁定一個同類型事件,后者會覆蓋前者,不同類型的事件可以綁定多個。
三、用 addEventListener、attachEvent 綁定
同一個 dom 元素上,用 addEventListener、attachEvent 可以綁定多個同類型事件。
但是,addEventListener 事件執(zhí)行順序按照事件綁定的先后順序執(zhí)行;attachEvent 事件執(zhí)行順序則是隨機的。
addEventListener
// 綁定
document.body.addEventListener('click', bodyClick, false);
// 解綁
document.body.removeEventListener('click', bodyClick, false);
注意:removeEventListener 第二個參數(shù)要和 addEventListener 指向同一個函數(shù)才能解綁成功。
addEventListener 的第三個參數(shù)若為 false,函數(shù)在冒泡階段執(zhí)行;若為 true,函數(shù)在捕獲階段執(zhí)行。默認為 false。
<div id="box"> <div id="child"></div> </div>
box.addEventListener("click", function(){
console.log("box");
}, false);
child.addEventListener("click", function(){
console.log("child");
});
// 執(zhí)行順序為 child box
box.addEventListener("click", function(){
console.log("box");
}, true);
child.addEventListener("click", function(){
console.log("child");
});
// 執(zhí)行順序為 box child
兼容性
Chrome 和 FireFox 只支持 addEventListener;IE 只支持 attachEvent(IE11開始不支持了)。
所以必須對2種方法做兼容處理。原理是先判斷 attachEvent 是否為真,如果為真則用 attachEvent 綁定事件,否則用 addEventListener 綁定事件。
可以封裝一個函數(shù)做兼容性處理:
//dom綁定事件的元素,ev事件名,fn執(zhí)行函數(shù)
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)
});
另外
以上三種方式綁定的點擊事件都可以用下面這條語句觸發(fā)
document.getElementById("btn").click();
PS:關于javascript事件說明可參考本站javascript事件與功能說明大全:http://tools.jb51.net/table/javascript_event
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript事件相關操作與技巧大全》、《JavaScript操作DOM技巧總結》、《JavaScript頁面元素操作技巧總結》、《JavaScript數(shù)據(jù)結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript錯誤與調試技巧總結》
希望本文所述對大家JavaScript程序設計有所幫助。
相關文章
javascript計算當月剩余天數(shù)(天數(shù)計算器)示例代碼
本文介紹了利用Javascript在網(wǎng)頁上計算當前月份的剩余天數(shù)的方法,大家參考使用吧2014-01-01
javascript設計模式之Adapter模式【適配器模式】實現(xiàn)方法示例
這篇文章主要介紹了javascript設計模式之Adapter模式,結合實例形式分析了JS適配器模式的原理與具體實現(xiàn)方法,具有一定參考借鑒價值,需要的朋友可以參考下2017-01-01
sessionStorage存儲時多窗口之前能否進行狀態(tài)共享解析
這篇文章主要為大家介紹了sessionStorage存儲時多窗口之前能否進行狀態(tài)共享解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02

