关于event的问题以及获取event的函数代码问题

问题1.


 button1.onclick = function(){alert("hello")}

button1.onclick = function(event){alert("hello")}

有什么区别?

问题2.关于EventUtil中的一个函数

 getEvent:function(event){ //这个event看不懂
   return event ?event:window.event;    //  这句话看得懂
}
bt1.onclick = function(event){       //这个是使用上面的函数 这个event在ie中能识别吗?
event = EventUtil.getEvent(event)
}

传进去的参数event是什么 不是说在ie在使用dom0添加事件处理函数时,event对象作为window对象的一个属性存在在,是不是可以理解为ie在使用dom0添加事件处理函数时不能识别event 是能识别window.event,如果是这样bt1.onclick = function(event)这个event是识别不了的 应该写成bt1.onclick = function(window.event){.....}

1个回答

1,没有区别,只是第二个到了个参数event,第一个也可以使用arguments[0]获取到事件参数

2,IE8-事件对象存储在window对象中。这个是浏览器对js支持有关。标准浏览器将事件参数作为第一个参数传入,ie8-只存储于window中。所以需要做兼容,如果参数evnet不存在(IE8-)再从window对象中获取

showbo
支付宝加好友偷能量挖 回复小羊也疯狂: IE9+才是。IE8-事件不是通过函数参数传入的,而是存储在window中。所以bt1.onclick = function(event){ event = EventUtil.getEvent(event) }这里的event参数在ie8下是undefined的,所以写了个EventUtil.getEvent来做兼容处理
接近 3 年之前 回复
qflyalltime
小羊也疯狂 ie8是不是标准浏览器?
接近 3 年之前 回复
qflyalltime
小羊也疯狂 还是有点不懂。function(event), return event ? 既然传入了event 又为啥要判断event存不存在
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问