zoukankan      html  css  js  c++  java
  • 事件处理程序(addEventListener 和 attachEvent)

    1.addEventListener 和 removeEventListener 

    接收三个参数:要处理的事件名、作为事件处理程序的函数和布尔值

    缺点:不兼容IE

    <body>
        <input type="button" value="按钮3" id="btn3">
    </body>
    <script type="text/javascript">
        function showMes(event){
            alert(event.type);
        }
        var btn3 = document.getElementById('btn3');
        btn3.addEventListener('click',showMes,false);
        btn3.addEventListener('click',function(){
            alert(this.value);
        },false);
        btn3.removeEventListener('click',showMes,false);
        
    </script>

    2.attachEvent和detachEvent

    接收两个参数:事件处理程序的名称和事件处理程序的函数

    btn3.attachEvent('onclick',showMes);

    然而,我们不能光为了chrome等浏览器只用addEventListener,或者光为了IE只用attachEvent,故而要将其融合起来用

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
    </head>
    <body>
        <input type="button" value="按钮3" id="btn3">
    </body>
    <script type="text/javascript">
        function showMes(event){
            alert(event.type);
        }
        var btn3 = document.getElementById('btn3');
        var eventUtil = {
            addHandler:function(element,type,handler){
                if(element.addEventListener){
                    element.addEventListener(type,handler,false);
                }
                else if(element.attachEvent){
                    element.attachEvent('on'+type,handler);
                }
                else{
                    element['on'+type] = handler;
                }
            },
            removeHandler:function(element,type,handler){
                if(element.removeEventListener){
                    element.removeEventListener(type,handler,false);
                }
                else if(element.detachEvent){
                    element.detachEvent('on'+type,handler);
                }
                else{
                    element['on'+type] = null;
                }
    
            }
    
        }
        eventUtil.addHandler(btn3,'click',showMes);
    </script>
    </html>
  • 相关阅读:
    不要再浪费时间阅读文献技巧本
    Reporting Services 中的分页方式Report Builder 3.0
    国外实时数据库比较
    转VS2010 C++下编译调试MongoDB源码 代震军
    C#中异步和多线程的区别
    Python seems amazing!
    嵌入式(armcc)自动调用函数
    MSSQL2008 日志文件收缩
    萝卜地...分享;
    Apache配置多个站点;
  • 原文地址:https://www.cnblogs.com/wanliyuan/p/3914996.html
Copyright © 2011-2022 走看看