当前位置: 移动技术网 > IT编程>开发语言>JavaScript > JS事件绑定的常用方式实例总结

JS事件绑定的常用方式实例总结

2019年03月18日  | 移动技术网IT编程  | 我要评论

理肤师,七乐彩专家 一休彩票1xcp,我变成了张无忌

本文实例讲述了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();

ps:关于javascript事件说明可参考本站javascript事件与功能说明大全

更多关于javascript相关内容感兴趣的读者可查看本站专题:《javascript事件相关操作与技巧大全》、《javascript操作dom技巧总结》、《javascript页面元素操作技巧总结》、《javascript数据结构与算法技巧总结》、《javascript遍历算法与技巧总结》及《javascript错误与调试技巧总结

希望本文所述对大家javascript程序设计有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网