zoukankan      html  css  js  c++  java
  • [读码时间] 事件练习:封闭兼容性添加,删除事件的函数

    说明:代码取自网络,注释为笔者学习时添加!

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>事件练习:封闭兼容性添加,删除事件的函数</title>
        <style>
            pre{
                color:green;
                padding:10px 15px;
                background:#f0f0f0;/*白色*/
                border:1px solid #333;/*黑色*/
                font:12px/1.5 Courier New;/*行高18*/
            }
            span{
                color:#999;/*灰黑色*/
            }
        </style>
        <script>
    var EventUtil = {
        addHandler: function (oElement, sEvent, fnHandler) {
            oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : oElement.attachEvent("on" + sEvent, fnHandler)
        },
        removeHandler: function (oElement, sEvent, fnHandler) {
            oElement.removeEventListener ? oElement.removeEventListener(sEvent, fnHandler, false) : oElement.detachEvent("on" + sEvent, fnHandler)
        },
        addLoadHandler: function (fnHandler) {
            this.addHandler(window, "load", fnHandler)
        }
    };
    EventUtil.addLoadHandler(function () {
        var aBtn = document.getElementsByTagName("input");
    
        //为第一个按钮添加绑定事件
        EventUtil.addHandler(aBtn[1], "click", function () {
            EventUtil.addHandler(aBtn[0], "click", fnHandler);
            aBtn[0].value = "我可以点击了"
        });
    
        //解除第一个按钮的绑定事件
        EventUtil.addHandler(aBtn[2], "click", function () {
            EventUtil.removeHandler(aBtn[0], "click", fnHandler);
            aBtn[0].value = "毫无用处的按钮"
        });
    
        //事件处理函数
        function fnHandler ()
        {
            alert("事件绑定成功!")
        }
    })
        </script>
    </head>
    <body>
        <pre>
    &lt;script type="text/javascript"&gt;
    var EventUtil = {
        addHandler: function (oElement, sEvent, fnHandler) {
            oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : oElement.attachEvent("on" + sEvent, fnHandler)    
        },
        removeHandler: function (oElement, sEvent, fnHandler) {
            oElement.removeEventListener ? oElement.removeEventListener(sEvent, fnHandler, false) : oElement.detachEvent("on" + sEvent, fnHandler)
        },
        addLoadHandler: function (fnHandler) {
            this.addHandler(window, "load", fnHandler)
        }
    }
    &lt;/script&gt;
    </pre>
        <center><input type="button" value="毫无用处的按钮"> <input type="button" value="绑定click"> <input type="button" value="解除绑定"></center>
    </body>
    </html>
    View Code
  • 相关阅读:
    网站前台性能优化教程
    解决Jboss打开run.bat时闪退不能启动的方法
    如何讲解自己开发的程序
    数据库调优教程汇总
    数据库调优教程(十三) MySQL数据库其他优化方法
    数据库调优教程(十二) 优化sql语句
    数据库调优教程(十一) 设计一张漂亮的表
    数据库调优教程(十) 【精华章节】解决like ’%str’ 时索引不被使用的4种方法
    数据库调优教程(九) 添加了索引但不被使用的几种常见可能
    Redis Cluster 实践
  • 原文地址:https://www.cnblogs.com/sx00xs/p/6487780.html
Copyright © 2011-2022 走看看