DOM事件绑定

DOM 2 级事件
element.addEventListener(type,handler,boolean)
第一个值代表事件类型,不加on。
第二个是执行的方法。(事件处理函数)
第三个值是一个布尔值,默认为false,只在冒泡阶段执行。true为在捕获阶段执行

element.removeEventListener(type,handler,boolean)
第一个值代表事件类型,不加on。
第二个是执行的方法。(事件处理函数)
第三个值是一个布尔值,默认为false,只在冒泡阶段执行。true为在捕获阶段执行
移除事件。用法与addEventListener一致。

element.attachEvent(type,handler) IE的事件绑定。
element.detachEvent(type,handler) IE的事件移除。
第一个值代表事件类型,加on。
第二个是执行的方法。(事件处理函数),
由于IE的事件模型只有冒泡模型,所以,只用传两个值.

两种绑定的区别:ie与DOM事件绑定的区别
addEventListener():
1-事件名称不带on ;
2-同一个 节点对象 可以绑定多个 事件函数
3-执行事件函数的顺序是正序;
4-this指向 节点对象obj;
5-有捕获 当参数是true时 表示捕获 false 指冒泡 (默认)
attachEvent():
1-事件名称带on;
2-同一个 节点对象 可以绑定多个 事件函数
3-执行事件函数的顺序是倒序;
4-this指向 windoew对象; 使用函数的call()方法 改变this的指向
5-没有捕获

添加跨浏览器事件绑定

var  addEvent = function(ele,type,handler){
    if(ele.addEventListener){
        ele.addEventListener(type,handler,false)
    }else if(ele.attachEvent){
        ele.attachEvent("on"+type,handler)
    }else{
        ele["on"+type]=handler
    }
}
addEvent(btn,"click",function(){console.log("点击")})

移除跨浏览器绑定

function removeEvent(ele,type,handler){
    if(ele.removeEventListener){
        ele.removeEventListener(type,handler,false)
    }
    else if(ele.detachEvent){
        ele.detachEvent('on'+type,handler)
    }
    else{
        ele['on'+type]=null
    }
}
removeEvent(btn,"click",function(){console.log("点击")})

DOM 0 级事件
HTML中的on-属性

<button id="btn" onclick="console.log(1)">确定</button>
<button id="btn" onclick="fn()">确定</button>

引号中字符的是可以执行的字符串
由于HTML中的on-方法使得js与HTML紧密的耦合在一起,不利于后期维护,所以不推荐使用。

DOM 0级事件

var btn=document.getElementById("btn")
btn.onclick=function(){
    console.log(1);
}
btn.onclick=function(){
    console.log(2);
}//2

如果添加相同的事件,后面的会覆盖前面的事件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,739评论 1 11
  • 以下文章为转载,对理解JavaScript中的事件处理机制很有帮助,浅显易懂,特分享于此。 什么是事件? 事件(E...
    jxyjxy阅读 3,193评论 1 10
  • 事件流: 事件流:页面接收事件的顺序。 IE定义的:事件冒泡流(由最具体的元素依次传播到DOM树的最上层的Docu...
    xiaoguo16阅读 666评论 0 0
  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 1,344评论 3 11
  • 我们、最后还是输给了现实 所以、我们谁也不欠谁 打败我们的,不是背叛 而是自此天涯两隔 你的余生、恕我未能继续参与...
    漫妮的小情书阅读 495评论 0 1

友情链接更多精彩内容