為什么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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM