event事件对象问题

关于event事件对象问题,一直没搞太清楚。

我的理解是,一旦有事件被触发(无论是onclick,onmouseout,onmouseover等),系统就会自动的触发一个event事件,这个event是来获取onclick,onmouseout,onmouseover等的详细信息的,比如按键信息等),意思就是我要知道鼠标点击的是左键还是右键,键盘上按下的是哪个键就得用event来获取对么?

那么对于以下的例子,去掉系统默认的行为(在浏览器中点击右键会出现默认的菜单)

  1. document.oncontextmenu= function(e){
        var oEvent;
        if(window.event){
            oEvent=window.event;
        }else{
            oEvent=arguments[0];
        }
        retrun false}



    这个例子中,function()里无论传不传参数e进去都会达到效果,那么,参数到底改不改传进去?为什么要传进去?

nobcainiao
浏览 1664回答 1
1回答

李晓健

这个应该是做浏览器的兼容性的,在有些浏览器上触发一些系统事件时会把这个事件传进来,但是在有些浏览器上不会传,而是直接放到window对象上。所以就会有上面的if else的处理。而且这个事件上浏览器传进来的,不是你手动传进来的,你只是去取了一下,其实在这里 document.oncontextmenu= function(e)  这个e写不写都没有关系,因为你在后面根本就没有直接用到它,你在用到它时是通过arguments[0] 来取的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript