为了账号安全,请及时绑定邮箱和手机立即绑定

event事件对象问题

event事件对象问题

nobcainiao 2015-12-26 15:36:25
关于event事件对象问题,一直没搞太清楚。我的理解是,一旦有事件被触发(无论是onclick,onmouseout,onmouseover等),系统就会自动的触发一个event事件,这个event是来获取onclick,onmouseout,onmouseover等的详细信息的,比如按键信息等),意思就是我要知道鼠标点击的是左键还是右键,键盘上按下的是哪个键就得用event来获取对么?那么对于以下的例子,去掉系统默认的行为(在浏览器中点击右键会出现默认的菜单)document.oncontextmenu= function(e){     var oEvent;     if(window.event){         oEvent=window.event;     }else{         oEvent=arguments[0];     }     retrun false}这个例子中,function()里无论传不传参数e进去都会达到效果,那么,参数到底改不改传进去?为什么要传进去?
查看完整描述

1 回答

已采纳
?
李晓健

TA贡献1036条经验 获得超461个赞

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

查看完整回答
反对 回复 2015-12-26
  • nobcainiao
    nobcainiao
    什么时候会用到参数event?或者说传event参数进去到底代表了什么
  • 李晓健
    李晓健
    arguments[0] 他就是这个e呀,你可以直接把它换成e,如果你把arguments[0] 换成了e ,function(e) 这里的e就必须得写了
  • 1 回答
  • 0 关注
  • 1629 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信