爲何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?????ide

var oEvent=ev||event;函數

這一句這麼寫是要兼容各個瀏覽器,spa

在FireFox瀏覽器中,事件綁定的函數要獲取到事件自己,須要從函數中傳入,而IE等瀏覽器則能夠直接使用event或者window.event獲得事件自己。3d

這一句的用途:須要獲取和事件相關的信息時使用。如:blog

  1. 獲取鍵盤按下或彈起的按鍵事件

  2. 獲取鼠標的位置座標get

  3. 獲取出發改事件的元素it

  4. 獲取事件名稱io

  5. 獲取事件當前的傳播階段搜索

  6. 獲取事件生成的日期時間

至於上面這些怎麼獲取,可補一下js事件方面的相關函數和屬性。

 

例子:

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

o=document.getElementById("dd");

o.onclick=function (ev){

var oEvent=ev||event;

alert(oEvent.screenX);

相關文章
相關標籤/搜索