因为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得到事件本身。
这一句的用途:需要获取和事件相关的信息时使用。如:
-
获取键盘按下或弹起的按键
-
获取鼠标的位置坐标
-
获取出发改事件的元素
-
获取事件名称
-
获取事件当前的传播阶段
-
获取事件生成的日期时间
至于上面这些怎么获取,可补一下js事件方面的相关函数和属性。
例子:
<div id="dd"> </div>
o=document.getElementById("dd");
o.onclick=function (ev){
var oEvent=ev||event;
alert(oEvent.screenX);
}