javscript事件兼容

/cancelBubble阻止事件冒泡

                function cancelBubble(ev){

                     var ev=ev||window.event;

                     if(ev.stopPropagation){

                        ev.stopPropagation();

                     }else{

                     ev.cancelBubble=true;

                     }

                }

                //获取样式

                function getStyle(obj,attr){

                if(getComputedStyle){

                getComputedStyle(obj)[attr];

                

                

                }else{

                obj.currentStyle[attr];

                

                

                }

                

                

                }

                //getClassName 通过类名获取元素

                function getClassName(oclass,oparent){

                var oparent=oparent||document;

                var arr=[];

                var element=oparent.getElementsByTagName('*');

                var reg= new RegExp('\\b'+oClass+'\\b');

                for(var i=0;i<element.length;i++){

                if(reg.test(element.className)){

                             arr.push(element);

                }

                }

                return arr;

                }

                //oEvent获取事件对象

                function oEvent(ev){

                var ev=ev||window.event;

                return ev;

                }

                //addEvent事件绑定

                function addEvent(obj,event,fn,bool){

                if(obj.addEventListener){

                obj.addEventListener(event,fn,bool);

                }else{

                obj.attachEvent('on'+event,function(){

                fn.call(obj);

                });

                }

                }

                // removeEvent移除事件

                function removeEvent(obj,event,fu,bool){

if(obj.removeEventListener){

obj.removeEventListener(event,fu,bool);

}else{

obj.detachEvent('on'+event,function(){

fu.call(obj);

});

}

}

                //getStyle获取非行内样式

                function getStyle(obj,attr){

if(obj.currentStyle){

return obj.currentStyle[attr];

}else{

return getComputedStyle(obj)[attr];

}

}

//getScrollTop滚动条

//获取滚动条的TOP

function getScrollTop(){

var top=document.documentElement.scrollTop||document.body.scrollTop;

return top;

}

//stopDefault阻止默认时间

function stopDefault(ev){

var ev=ev||window.event;

if(ev.preventDefault){

ev.preventDefault();

}else{

ev.returnValue=false;

}

 }

javascript中的默认行为是指javascript中事件本身具有的属性,如<a>标签可以跳转,文本框 可输入文字、字母、图片等,右键浏览器会出现菜单等行为便被称为浏览器的默认行为。

 阻止默认行为(兼容)

阻止右键菜单

document.oncontextmenu = function(){

alert("右键被按下");

return false;

}

ev.preventDefault(); //非IE

ev.returnValue = false;   //IE

 事件监听器(兼容)

n target.addEventListener("click", fun, false); --标准浏览器

n target.attachEvent("onclick",fun); --IE浏览器(执行顺序按照绑定的反序)

n removeEventListene()/detachEvent() 移除事件绑定的参数和添加事件绑定是一致的。

事件流描述的是从页面中接收事件的顺序。

n 可以绑定多个函数在一个对象上。

执行顺序按照绑定的顺序来(IE反向)。

第三个参数是否使用捕捉(反向冒泡),默认false,为冒泡。

 事件捕获

n 从父元素向子元素,直至触发事件元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值