为什么JS事件函数里面都有一个参数(ev)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么JS事件函数里面都有一个参数(ev)?相关的知识,希望对你有一定的参考价值。

因为ev是事件的参数啊!在ev中包含了事件触发时的参数,比如click事件的ev中包含着.e.pageX,e.pageY,keydown事件中包含着ev.keyCode等,在ie中,ev是全局的可以通过window.event来获取,在其他浏览器中都是作为参数传入的。
所以好多事件函数都是这样写:
mydiv.onclick = function(ev){
  if(!ev){ev = window.event;} //这句也可以简写成:ev=window.event||ev;
  alert(ev.pageX+","+ev.pageY);
}

 

 

JS里面什么时候会用到var oEvent=ev||event?????

var oEvent=ev||event;

这一句这么写是要兼容各个浏览器,

在FireFox浏览器中,事件绑定的函数要获取到事件本身,需要从函数中传入,而IE等浏览器则可以直接使用event或者window.event得到事件本身。

这一句的用途:需要获取和事件相关的信息时使用。如:

  1. 获取键盘按下或弹起的按键

  2. 获取鼠标的位置坐标

  3. 获取出发改事件的元素

  4. 获取事件名称

  5. 获取事件当前的传播阶段技术分享

  6. 获取事件生成的日期时间

至于上面这些怎么获取,可补一下js事件方面的相关函数和属性。

 

例子:

<div id="dd"> </div>

o=document.getElementById("dd");

o.onclick=function (ev){

var oEvent=ev||event;

alert(oEvent.screenX);






以上是关于为什么JS事件函数里面都有一个参数(ev)?的主要内容,如果未能解决你的问题,请参考以下文章

js事件流

事件流,冒泡,捕获,事件委托

node.js之事件机制

Hammer.js分析——input.js

js中啥是事件气泡,如何阻止事件气泡

var ev = ev || event