1.阻止浏览器的默认行为的兼容写法:
function stopDefault(e){
if(e.preventDefault){
e.preventDefault();
}else{
e.returnValue = false;
}
}
- 还可以直接写一个return false;最好写在最后一行。
2.阻止事件冒泡的兼容写法:
function stopBubble(e){
if(e.stopPropagation){
e.stopPropagation()
}else{
e.cancelBubble = true;
}
}
3. 删除监听事件句柄的兼容写法:
function removeEvent(ele,myevent,cb){
if(ele.detachEvent){
ele.detachEvent("on"+myevent,cb)
}else{
ele.removeEventListener(myevent,cb,false);
}
}
- 非IE浏览器:元素.removeEventListener(“不加on的事件名”,句柄,false/true),此处的false表示允许事件冒泡,true表示允许事件委托,默认不写为false。
- IE浏览器:元素.detachEvent(“加on的事件名”,事件句柄),没有第三个参数。
4.事件监听绑定事件的兼容写法:
function addEvent(ele,myevent,cb){
if(ele.attachEvent){
ele.attachEvent("on"+myevent,cb)
}else{
ele.addEventListener(myevent,cb,false)
}
}
5.获取样式的兼容写法:
function getStyle(ele,attr){
if(Element.currentStyle){
return ele.currentStyle[attr];
}else{
return getComputedStyle(ele,false)[attr];
}
}
6. 获取事件对象的兼容写法:
- IE浏览器:window.event;
- 非IE浏览器:对象.事件 = function(event){} (对象执行函数的参数即是事件对象)
var e = eve || window.event;
*注意:e指的是事件对象。*
7.获取事件源的兼容写法:
var target = e.target || e.srcElement;
*注意:e指的是事件对象。*
8.获取键盘按键的ASCII码的兼容写法:
var keyCode = e.keyCode || e.which;