zoukankan      html  css  js  c++  java
  • 阻止事件

    一。取消浏览器对事件的默认行为(响应)(比如标签的跳转等)并停止事件的继续传播。


        function stopEvent (evt) {
            var evt = evt || window.event;
            if (evt.preventDefault) {
                evt.preventDefault();
                evt.stopPropagation();
            } else {
                evt.returnValue = false;//IE
                evt.cancelBubble = true;//IE
            }
        }
     
    二。只阻止事件继续传播(不取消默认行为)即停止事件冒泡
        
        function stopEvent (evt) {
            var evt = evt || window.event;
            if (evt.stopPropagation) {
                evt.stopPropagation();
            } else {
                evt.cancelBubble = true;//IE
            }
        }
     
    三。只取消默认行为(不阻止事件的继续传播)
     
        function stopEvent (evt) {
            var evt = evt || window.event;
            if (evt.preventDefault) {
                evt.preventDefault();//DOM
            } else {
                evt.returnValue = false;//IE
            }
        }
     
    例:
       var EX = {
            //添加事件
            addEvent:function(k,v){ //k是一个事件名;v是一个函数
                var me = this;
                if(me.addEventListener){ //兼容IE8以上
                    me.addEventListener(k,v,false); //k是一个事件名;v是一个函数;false表示事件冒泡执行
                }else if(me.attachEvent){ //兼容处理ie8及以下
                    me.attachEvent('on'+k,v); //on+k事件名,如click,v 一个函数,此处的格式为 me.attachEvent('onclick',function)
                }else{
                    me['on'+k] = v; //兼容处理好了后,假设me[onclick] = function = me.onclick=function;
                }
            },
            //移除事件
            removeEvent:function(k,v){ //k是一个事件名;v是一个函数
                var me = this;
                if(me.removeEventListener){  //对应addEventListener()方法
                    me.removeEventListener(k,v,false);
                }else if(me.detachEvent){ //对应attachEvent()方法
                    me.detachEvent('on'+k,v);
                }else{
                    me['on'+k] = null; //空对象指针
                }
            },
            //停止事件,取消事件冒泡传递
            stop:function(evt){
                evt = evt||window.event;  
                //stopPropagation()方法,阻止分派到其他节点
                evt.stopPropagation?evt.stopPropagation():evt.cancelBubble=true;
            }
        }
  • 相关阅读:
    Spring 事务管理tx,aop
    好的博客参考之Spring
    Spring 事务管理
    Eclipse+Tomcat+MAVEN+SVN项目完整环境搭建
    ssm框架搭建
    SSH整合不错的博客
    org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.my.service.ProductService] for bean with name 'productService' defi报错解决方法
    修改firefox的默认缩放比
    深入理解计算机系统笔记
    OnePlus5刷机后一直检查更新
  • 原文地址:https://www.cnblogs.com/Byme/p/5732053.html
Copyright © 2011-2022 走看看