javascript 绑定事件 阻止冒泡和默认事件

来源:互联网 发布:退火算法用途 编辑:程序博客网 时间:2024/06/17 17:25

在使用javascript时,有时我们需要为其绑定时间,IE和非IE还有一点点区别,以及阻止冒泡和默认时间此文章算是自己的笔记吧

--第一种,不带参数

var  eventUtil = {

// 添加句柄

addHandler : function (element, type, handler){

if(element.addEventListener){

element.addEventListener(type, handler, false);

}else if (element.attachEvent){

element.attachEvent('on'+type,handler);

}else{

element['on'+type] = handler;

}

},

removeHandler :  function (element, type, handler){

if(element.removeEventListener){

element.removeEventListener(type, handler, false);//做移除操作时,这个handler不能直接写function(){},因为会认为和添加的时候不是同一个函数,这个函数必须要单独定义出来才行

}else if (element.attachEvent){

element.detachEvent('on'+type,handler);

}else{

element['on'+type] = null;

}

},

stopPropagation = function(event){ // 取消冒泡
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancleBubble=true;
}
},
preventDefault = function(event){ // 阻止默认事件
if(event.preventDefault){
event.preventDefault();
} else{
event.returnValue = false;
}
}

}



// 调用如下  

//添加

eventUtil.addHandler(liNode,'click',hello);

// 删除
eventUtil.removeHandler(liNode,'click',hello);

function hello(){
alert('hello');
}


--第二种,带参数

var  eventUtil = {

// 添加句柄

addHandler : function (element, type, handler, param){

var handlerNew = handler;

if(param){

handlerNew = function(e){

handler.call(this,param);

}

}

if(element.addEventListener){

element.addEventListener(type, handler, false);

}else if (element.attachEvent){

element.attachEvent('on'+type,handler);

}else{

element['on'+type] = handler;

}

},

removeHandler :  function (element, type, handler,param){

var handlerNew = handler;

if(param){

handlerNew = function(e){

handler.call(this,param);

}

}

if(element.removeEventListener){

element.removeEventListener(type, handler, false);//做移除操作时,这个handler不能直接写function(){},因为会认为和添加的时候不是同一个函数,这个函数必须要单独定义出来才行

}else if (element.attachEvent){

element.detachEvent('on'+type,handler);

}else{

element['on'+type] = null;

}

},

stopPropagation = function(event){ // 取消冒泡
if(event.stopPropagation){
event.stopPropagation();
}else{
event.cancleBubble=true;
}
},
preventDefault = function(event){ // 阻止默认事件
if(event.preventDefault){
event.preventDefault();
} else{
event.returnValue = false;
}
}

}


//调用

var  par = new Object();

par.name='zhangsan';

par.age = 18;

eventUtil.addHandler(liNode,'click',say,par);

function say(param){

alert(param.name+"=="+age);  // zhangsan==18

}


0 0
原创粉丝点击