2,封装操作事件-------跨浏览器操作
eventUtil={
//添加句柄
addHandler:function(obj,type,fn){
//dom2级
if(obj.attachEvent){
obj.attachEvent("on"+type,fn);
}else if(obj.addEventListener){
obj.addEventListener(type,fn,false);
}else{
//dom0级
obj.["on"+type]=fn
}
},
//删除句柄
removeHandler:function(obj,type,fn){
if(obj.detachEvent){
obj.detachEvent("on"+type,fn);
}else if(obj.removeEventListener){
obj.removeEventListener(type,fn,false);
}else{
obj.["on"+type]=null;
}
}
}
三 事件对象
1,DOM中的事件对象
1,type属性 用于获取事件类型
2,target属性 用于获取事件目标
3, event.stopPropagation(); 阻止事件冒泡;
4, event. preventDefault ;阻止默认行为
2,IE中的事件对象
1,typet属性 用于获取事件类型
2,srcElement属性 用于获取事件目标
3, cancelBubble属性; 阻止事件冒泡;
4, return false属性 ;阻止默认行为
eventUtil={
//添加句柄
addHandler:function(obj,type,fn){
if (obj.attachEvent) {
obj.attachEvent("on"+type,fn);
}else if(obj.addEventListener){
obj.addEventListener(type,fn,false);
}else{
obj["on"+type]=fn;
}
},
//删除句柄
removeHandler:function(obj,type,fn){
if (obj.detachEvent) {
obj.detachEvent("on"+type,fn);
}else if(obj.removeEventListener){
obj.removeEventListener(type,fn,false);
}else{
obj["on"+type]=null;
}
},
//获取事件的类型
getStype:function(event){
return event.type;
},
//获取事件
getEvent:function(event){
return event?event:window.event;
},
//获取事件目标
getElement:function(event){
return event.target||event.srcElement;
},
//阻止事件冒泡
preventDefault:function(event){
if (event.preventDefault) {
event.preventDefault();
}else{
event.returnValue=false;
}
},
//阻止默认行为
stopPropagation:function(event){
if (event.stopPropagation) {
event.stopPropagation();
}else{
event.cancelBubble=true;
}
}
}
4,获取className
var obj=document.getElementByClassName("");
function getClass(nclass,parent){
var oParent=parent?document.getElementById(parent):document,
results=[],
eles=oParent.getElementsByTagName("*");
for(var i=0,j=eles.length;i<j;i++){
result.push(eles[ i ]);
}
return results;
}