JavaScript事件

一、默认事件

阻止默认事件,主流浏览器使用preventDefault(),IE8及其以下,设置returnValue属性,false取消默认事件,true不取消默认事件。

document.onselectstart = function(e) {
    e = e || window.event;
    //取消默认行为
    if(e.preventDefault){
        e.preventDefault();
    }else{
        e.returnValue = false;
    }
    console.log('文本选中')
};

document.oncontextmenu = function(e){
    e = e || window.event;
    //取消默认行为
    if(e.preventDefault){
        e.preventDefault();
    }else{
        e.returnValue = false;
    }
    console.log('右键菜单')
}

二、滚轮事件

  1. IE/Chrome使用onmousewheel,滚轮属性event.wheelDelta,向上为120,向下为-120。
  2. Firefox使用DOMMouseScroll,必须使用addEventListener()添加,滚轮属性event.detail向上为-3,向下为3。
//鼠标滚轮事件
function mousewheelEvent(ele,fn,boole){

    //判断是否为IE浏览器
    if(ele.addEventListener){
        //判断是否为火狐浏览器
        if(ele.onmousewheel === undefined){//火狐
            ele.addEventListener('DOMMouseScroll',fn,boole);
        }else{//谷歌
            ele.addEventListener('mousewheel',fn,boole);
        }
    }else if(ele.attachEvent){//ie浏览器
        ele.attachEvent('onmousewheel',function(){
            fn.call(ele);
        });
    }
}

mousewheelEvent(document,function(){
    console.log(this);
});

三、表单事件

  1. 获取焦点事件,onfocus获取焦点事件