zoukankan      html  css  js  c++  java
  • 取消事件传播 兼容ie和所有浏览器 preventDefault returnValue stopPropagation cancelBubble addEventListener attachEvent

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>事件取消</title>
        </head>
        <body>
            <div id="box">
                <button id="boxChild">boxChild</button>
            </div>
            
            <script type="text/javascript">
            //事件的取消
                var utilStopHandler = {
                    cancelEvent:function(event){//取消事件
                        var event = event || window.event;
                        if(event.preventDefault){
                            event.preventDefault();
                        }else if(event.returnValue){
                            event.returnValue = false;
                        }else{
                            return false;
                        }
                    },
                    stopEvent:function(){//取消事件的传播
                        var event = event || window.event;
                        if(event.stopPropagation){
                            event.stopPropagation();
                        }else if(event){
                            event.cancelBubble = false;
                        }else{
                            return false;
                        }
                    }
                }
                //封装自己的 句柄事件 
                    var myUtilEvent = {
                        myAddHandler:function(element, eType, hanlder){//添加句柄
                            if(element.addEventListener){//ie8及之前版本外的所有浏览器支持的标准事件模型
                                element.addEventListener(eType, hanlder, false);
                            }else if(element.attachEvent){
                                element.attachEvent(eType, hanlder);//兼容ie9以下版本
                            }else{
                                element["on" + eType] = hanlder;
                            }
                        },
                        myRemoveHandler:function(element, eType, hanlder){//删除句柄
                            if(element.removeEventListener){
                                element.removeEventListener(eType, hanlder, false);
                            }else if(element.detachEvent){
                                element.detachEvent("on" + eType, hanlder);
                            }else{
                                element["on" + eType] = null;
                            }
                        }
                    }
                    
                    var handler = function(e){
                        alert("thanks too!");
                    }
                
                var box = document.getElementById("box");
                var boxChild = document.getElementById("boxChild");
                myUtilEvent.myAddHandler(box,"click", handler);
                myUtilEvent.myAddHandler(boxChild,"click", function(){
                    alert("thanks!");
                    utilStopHandler.stopEvent(boxChild);
                });
            </script>
        </body>
    </html>
  • 相关阅读:
    方法重写
    百度地图(5)-添加标注
    百度地图(3)-添加地图控件
    百度地图(2)-初始化地图
    GIS系统开发流程
    百度地图(1)- JavaScript API V3.0 对比 JavaScript GL API 1.0
    通过QGIS下载OSM数据
    深入理解 Spring 之源码剖析IOC
    FastDFS安装教程
    FastDFS简介
  • 原文地址:https://www.cnblogs.com/webgg/p/5316195.html
Copyright © 2011-2022 走看看