美文网首页
事件处理程序

事件处理程序

作者: IvyAutumn | 来源:发表于2018-12-08 15:57 被阅读0次

HTML事件处理程序

HTML程序和JS无法分离

DOM0级事件处理程序

DOM2级事件处理程序

DOM2级事件定义了两个方法:用于处理制定和删除事件处理程序的操作:addEventListener()和removeEventListener()。他们都接收三个参数:要处理的事件名、作为事件处理程序的函数,布尔型变量(true表示事件捕获,false表示事件冒泡)
DOM2在IE浏览器中不起作用

IE事件处理程序

attachEvent()添加事件
detachEvent()删除事件
接收两个相同的参数:事件处理程序的名称、事件处理程序的函数
不适用第三个参数的原因:IE8以及更早的浏览器版本只支持事件冒泡

跨浏览器的事件处理程序

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件流</title>
</head>
<body>
    <div class="box">
        <input type="button" value="按钮0" id = "btn0" onclick="showMes()">
        <input type="button" value="按钮1" id = "btn1">
        <input type="button" value="按钮2" id = "btn2">
    </div>
    <script>
        function showMes(){
            alert('hello world');
        }
        var btn1 = document.getElementById("btn1");
        var btn2 = document.getElementById("btn2");
        btn1.onclick=function () {
            alert("这是通过DOM0级添加的事件")
        }
        btn1.onclick=null;//删除onclick属性,清除事件
        //DOM2级事件
/*      btn2.addEventListener('click',showMes,false);
        btn2.addEventListener('click',function(){
            alert(this.value)
        },false);
        //删除事件
        //IE8之前的处理方法
        //btn2.removeEventListener('click',showMes,false);
        // btn2.attachEvent('onclick',showMes);
        // btn2.detachEvent('onclick',showMes);*/

        //跨浏览器的处理方法:封装在一个对象中
        var eventUtil = {
            //添加句柄
            addHandler:function(element, type, handler){
                if(element.addEventListener){
                    element.addEventListener(type,handler,false)//DOM2级事件处理
                }else if(element.attachEvent){
                    element.attachEvent('on'+type,handler);//IE浏览器事件处理
                }else{
                    element['on'+type]=handler;//DOM0级事件处理
                }
            },
            //删除句柄
            removeHandler:function(element, type, handler){
                if(element.removeEventListener){
                    element.removeEventListener(type,handler,false)//DOM2级事件处理
                }else if(element.detachEvent){
                    element.detachEvent('on'+type,handler);//IE浏览器事件处理
                }else{
                    element['on'+type]=handler;//DOM0级事件处理
                }
            }
        }
        //调用
        eventUtil.addHandler(btn2,'click',showMes);
        eventUtil.removeHandler(btn2,'click',showMes);
    </script>
</body>
</html>

相关文章

  • JS 事件

    目录 事件流 事件处理程序HTML事件处理程序DOM0级事件处理程序DOM2级事件处理程序IE事件处理程序跨浏览器...

  • 跨浏览器的事件处理程序

    事件处理程序有DOM0级事件处理程序、DOM2级事件处理程序,IE事件处理程序,DOM0级事件处理程序具有简单,跨...

  • 事件处理

    HTML事件处理程序 DOM0级事件处理程序 DOM2级事件处理程序 addEventListener()和rem...

  • 事件处理程序

    HTML事件处理程序 HTML程序和JS无法分离 DOM0级事件处理程序 DOM2级事件处理程序 DOM2级事件定...

  • DOM事件的问题!

    1.事件冒泡 2.事件捕获 事件处理程序 1.HTML事件处理程序 2.DOM 0级事件处理程序 3.DOM 2级...

  • 关于JavaScript跨浏览器事件的处理

    一、4种事件处理程序 事件就是用户或浏览器自身执行的某种操作,而事件处理程序即为响应某个事件的函数。事件处理程序大...

  • 带你深入理解DOM0级事件处理程序!!!

    DOM0级事件处理程序 通过JavaScript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属...

  • Javascript事件

    事件处理程序 如果是true,表示在捕获阶段调用事件处理程序如果是false,表示在冒泡阶段调用事件处理程序以上两...

  • DOM0级事件处理及DOM2级事件处理

    DOM0级事件处理程序 通过JavaScript指定事件处理程序的传统方式,就是将一个函数赋值给一个事件处理程序属...

  • 事件

    事件类似于异常,由对象引发,可以提供代码来处理事件。事件可以有许多订阅的处理程序,在该事件发生时,这些处理程序都会...

网友评论

      本文标题:事件处理程序

      本文链接:https://www.haomeiwen.com/subject/xyhqhqtx.html