自己的js工具 Event封装_Javascript教程-查字典教程网
自己的js工具 Event封装
自己的js工具 Event封装
发布时间:2016-12-30 来源:查字典编辑
摘要:因为ie的event是全局的而firefox的event是局部的,用起来不太方便,这个时候我们就要自己组装一下常用的event操作了,封装成...

因为ie的event是全局的而firefox的event是局部的,用起来不太方便,这个时候我们就要自己组装一下常用的event操作了,封装成类便于重用

复制代码 代码如下:

/**

类 Event

用法:

Event.getEvent();获取 ie,firefox的event

Event.getTarget();获取ie的srcElement或firefox的target

Event.isIe();是否为ie

Event.clientX(); 获取ie,fox的鼠标x坐标

Event.clientY();获取 ie,fox的鼠标y坐标

*/

var Event=new function(){

this.toString=function(){

return this.getEvent();

}

//获取 事件

this.getEvent=function(){

var ev=window.event;

if(!ev){

var c=this.getEvent.caller;

while(c){

ev=c.arguments[0];

if(ev && Event ==ev.constructor)

break;

c=c.caller;

}

}

return ev;

};

//获取 事件源

this.getTarget=function(){

var ev=this.getEvent();

return this.isIe()?ev.srcElement:ev.target;

}

//是否为ie

this.isIe=function(){

return document.all?true:false;

}

//鼠标x坐标

this.clientX=function(){

var ev=this.getEvent();

var x=this.isIe()?ev.clientX:ev.pageX;

return x;

}

//鼠标y坐标

this.clientY=function(){

var ev=this.getEvent();

var y=this.isIe()?ev.clientY:ev.pageY;

return y;

}

/**增加事件(对象,事件类型,函数指针 )

obj: html对象

sEvent: 事件名称

spNotify: 事件执行的方法

isCapture:是否允许全屏捕捉

*/

this.addEvent=function(obj,sEvent,fpNotify,isCapture){

sEvent=sEvent.indexOf("on")!=-1?sEvent:"on"+sEvent;

if(obj.addEventListener){

sEvent=sEvent.substring(sEvent.indexOf("on")+2);

obj.addEventListener(sEvent,fpNotify,isCapture);

}else{ //ie

if(isCapture)

obj.setCapture(isCapture);

obj.attachEvent(sEvent,fpNotify);

}

}

//移除事件

this.removeEvent=function(obj,sEvent,fpNotify){

if(obj.removeEventListener){

sEvent=sEvent.substring(sEvent.indexOf("on")+2)

obj.removeEventListener(sEvent,fpNotify,false);

}else{

obj.detachEvent(sEvent,fpNotify);

}

}

//获取鼠标按键,left=1,middle=2,right=3

this.button=function(){

var ev=this.getEvent();

if(!ev.which&&ev.button){//ie

return ev.button&1?1:(ev.button&2?3:(ev.button&4?2:0))

}

return ev.which;

};

//阻止事件冒泡传递

this.stopPropagation=function(){

var ev=this.getEvent();

if(this.isIe)

ev.cancelBubble=true;

else

ev.stopPropagation();

}

//阻止默认事件返回

this.preventDefault=function(){

var ev=this.getEvent();

if(this.isIe)

ev.returnValue=false;

else

ev.preventDefault();

}

}

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类