118.dom2兼容处理this问题

 

<script type="text/javascript">
    /*
    *bind:处理dom2级事件绑定的兼容性问题(绑定方法)
    * @parameter:
    *   curEle:要绑定事件的元素
    *   eventType:要绑定的事件类型(“click”,“mouseover”...)
    *   evenFn:要绑定的方法
    */
    function bind(curEle,evenType,evenFn) {
        if("addEventListener" in document) {
            curEle.addEventListener(evenType,evenFn,false);
            return;
        }
        // 给原有函数evenFn化妆
        var tempFn = function () {
            evenFn.call(curEle)
        }
        // 首先判断该自定义属性之前是否存在,不存在的话创建一个,由于要存储多个方法化妆后的结果,所以,我们让其值是一个数组
        if (!curEle["myBind"]){
            curEle["myBind"] = []
        } else {
            curEle["myBind"].push(tempFn)
        }
        curEle.attachEvent("on"+evenType, tempFn);
    }
    function unbind(curEle,evenType,evenFn) {
        if("removeEventListener" in document) {
            curEle.removeEventListener(evenType,evenFn,false);
            return;
        }
        curEle.detachEvent("on"+evenType,tempFn);
    }
</script>

 

posted @ 2018-05-07 16:41  Z-DL  阅读(210)  评论(0编辑  收藏  举报