事件兼容性封装

function event(){

if(window.addEventListener) {
                        this.addEventListener("click", handler);
                    } else if(window.attachEvent) {
                        this.attachEvent("onclick", handler);
                    } else {
                        // this.onclick = handler;
                        // 思路:
                        // 1 先判断有没有绑定过事件
                        // 2 如果没有绑定直接赋值
                        // 3 如果绑定过了
                        //         3.1 先将绑定的事件保存起来
                        //         3.2 调用事件:先调用已经绑定的事件,再调用当前绑定的事件

                        var oldFn = this.onclick;
                        // 事件没有绑定过,那么就是null,否则就是 function
                        if(typeof oldFn !== "function") {
                            this.onclick = handler;
                        } else {
                            // 已经绑定过事件了
                            this.onclick = function() {
                                oldFn();
                                handler();
                            };
                        }
                    
}

 

posted @ 2016-09-23 21:53  萧诺  阅读(212)  评论(0编辑  收藏  举报