最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS事件綁定的常用方式實(shí)例總結(jié)

 更新時(shí)間:2019年03月02日 10:13:33   作者:huangpb0624  
這篇文章主要介紹了JS事件綁定的常用方式,結(jié)合實(shí)例形式總結(jié)分析了javascript三種常見(jiàn)的事件綁定原理與操作技巧,需要的朋友可以參考下

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

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

  • 直接在 dom 元素上進(jìn)行綁定。
  • 用 on 綁定。
  • 用 addEventListener、attachEvent 綁定。

一、直接在 dom 元素上進(jìn)行綁定

<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;

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

三、用 addEventListener、attachEvent 綁定

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

但是,addEventListener 事件執(zhí)行順序按照事件綁定的先后順序執(zhí)行;attachEvent 事件執(zhí)行順序則是隨機(jī)的。

addEventListener

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

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

addEventListener 的第三個(gè)參數(shù)若為 false,函數(shù)在冒泡階段執(zhí)行;若為 true,函數(shù)在捕獲階段執(zhí)行。默認(rèn)為 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í)行順序?yàn)?child box

box.addEventListener("click", function(){
  console.log("box");
}, true);
child.addEventListener("click", function(){
  console.log("child");
});
// 執(zhí)行順序?yàn)?box child

兼容性

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

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

可以封裝一個(gè)函數(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)
});

另外

以上三種方式綁定的點(diǎn)擊事件都可以用下面這條語(yǔ)句觸發(fā)

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

PS:關(guān)于javascript事件說(shuō)明可參考本站javascript事件與功能說(shuō)明大全http://tools.jb51.net/table/javascript_event

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript事件相關(guān)操作與技巧大全》、《JavaScript操作DOM技巧總結(jié)》、《JavaScript頁(yè)面元素操作技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • sessionStorage存儲(chǔ)時(shí)多窗口之前能否進(jìn)行狀態(tài)共享解析

    sessionStorage存儲(chǔ)時(shí)多窗口之前能否進(jìn)行狀態(tài)共享解析

    這篇文章主要為大家介紹了sessionStorage存儲(chǔ)時(shí)多窗口之前能否進(jìn)行狀態(tài)共享解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • lightBox 簡(jiǎn)易的全屏透明遮罩解決方法

    lightBox 簡(jiǎn)易的全屏透明遮罩解決方法

    現(xiàn)在全屏的半透明遮罩層在web2.0網(wǎng)站應(yīng)用非常廣泛了,絕大多數(shù)遮罩是通過(guò)計(jì)算頁(yè)面大小,然后覆蓋一個(gè)與頁(yè)面同等大小的層實(shí)現(xiàn),如騰訊qzone, wordpress后臺(tái)。
    2010-06-06
  • 最新評(píng)論

    郎溪县| 修文县| 佛冈县| 平武县| 沅江市| 肥乡县| 宾阳县| 普兰县| 惠州市| 息烽县| 武川县| 梨树县| 上饶市| 邵东县| 正安县| 阿瓦提县| 和田县| 巴里| 阿鲁科尔沁旗| 周至县| 乳山市| 宁南县| 茌平县| 茶陵县| 涡阳县| 万年县| 山阳县| 正安县| 桦南县| 连南| 永修县| 海林市| 岳西县| 东城区| 邛崃市| 晋城| 大埔区| 安徽省| 长汀县| 房山区| 林芝县|