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>
  • 相关阅读:
    HTTP协议简介
    Hadoop日记Day1---Hadoop介绍
    Linux日记Day3---Linux的文件属性与目录配置
    Hadoop日记Day4---去除HADOOP_HOME is deprecated
    Android 系统名字、版本、API level的对应关系
    win10搭建selendroid测试环境
    初识selendroid
    学习selendroid初衷
    Contos 安装nodeJs环境
    Failed to write HTTP message,Could not write JSON错误
  • 原文地址:https://www.cnblogs.com/wanliyuan/p/3914996.html
Copyright © 2011-2022 走看看