Javascript中的事件–Event對象

來源:互聯網
上載者:User

Event是Javascript中的重要事件,event代表事件的狀態,專門負責對事件的處理,它的屬性和方法能協助我們完成很多和使用者互動的操作,下面是對這個對象的簡單總結,希望跟大家一起學習

一、Event對象的主要屬性和方法
  
  1.type:事件的類型,就是HTML標籤屬性中,沒有“on”首碼之後的字串,例如“Click”就代表單擊事件。

  2.srcElement:事件來源,就是發生事件的元素。比如<a ></a> a這個連結是事件發生的源頭,也就是該事件的srcElement。(非IE中用target)

  3.button:聲明了被按下的滑鼠鍵,是一個整數。0代表沒有按鍵,1代表滑鼠左鍵,2代表滑鼠右鍵,4代表滑鼠的中間鍵,如果按下了多個滑鼠鍵,就把這些值加在一起,所以3就代表左右鍵同步選取。

  4.clientX/clientY:是指事件發生的時候,滑鼠的橫、縱座標,返回的是整數,它們的值是相對於包容視窗的左上方產生的。

  5.offsetX/offsetY:滑鼠指標相對於源元素的位置,可以確定單擊Image對象的哪個象素。

  6.altKey,ctrlKey,shiftKey:顧名思義,這些屬性是指滑鼠事件發生的時候,是否同時按住了Alt、Ctrl或者Shift鍵,返回的是一個布爾值。

  7.keyCode:返回keydown和keyup事件發生的時候,按鍵的代碼以及keypress事件的Unicode字元。比如event.keyCode=13代表按下了斷行符號鍵;

  8.fromElement、toElement前者是指代mouseover事件移動過的文件項目,後者指代mouseout事件中滑鼠移動到的文件項目。

  9.cancelBubble:一個布爾屬性,把它設定為true的時候,將停止事件進一步起泡到包容層次的元素,它用於檢測是否接受上層元素的事件的控制。true代表不被上層元素的事件控制,false代表允許被上層元素的事件控制。

  10.returnValue:一個布爾值屬性,設定為false的時候可以阻止瀏覽器執行預設的事件動作,相當於<a href=”#” onclick=”ProcessMethod();return false;” />。

  11.attachEvent()和detachEvent()方法:為制定DOM對象事件類型註冊多個事件處理函數的方法,它們有兩個參數,第一個是事件類型,第二個是事件處理函數。在attachEvent()事件執行的時候,this關鍵字指向的是window對象,而不是發生事件的那個元素。

二、 IE Event對象的一些說明

  Event對象是一個全域屬性
  在IE中,不能把Event對象作為參數傳遞給事件處理常式,只能用window.event或者event來引用Event對象。因為在IE中,Event是window的一個屬性,也就是說event是一個全域變數,這個變數提供了事件的細節。

三、關於事件的起泡的概念

  IE中事件的起泡:IE中事件可以沿著包容層次一點點起泡到上層,也就是說,下層的DOM節點定義的事件處理函數,到了上層的節點如果還有和下層相同事件類型的事件處理函數,那麼上層的事件處理函數也會執行。例如,<div>標籤包含了<a>,如果這兩個標籤都有 onclick事件的處理函數,那麼執行的情況就是先執行<a>標籤的onclick事件處理函數,再執行<div>的事件處理函數。如果希望<a>的事件處理函數執行完畢之後,不希望執行上層的<div>的onclick的事件處理函數了,那麼就把 cancelBubble設定為false即可。

四、W3C DOM標準中的Event
和IE不同的是,W3C DOM中的Event對象並不是window全域對象下面的屬性,換句話說,event不是全域變數。通常在DOM二級標準中,event作為發生事件的文檔對象的屬性。Event含有兩個子介面,分別是UIEvent和MutationEvent,這兩個子介面實現了Event的所有方法和屬性,而 MouseEvent介面又是UIEvent的子介面,所以實現了UIEvent和Event的所有方法和屬性。下面,我們就看看Event、 UIEvent和MouseEvent的主要屬性和方法。
  1.Event
   type:事件類型,和IE類似,但是沒有“on”首碼,例如單擊事件只是“click”。
   target:發生事件的節點。
   currentTarget:發生當前正在處理的事件的節點,可能是Target屬性所指向的節點,也可能由於捕捉或者起泡,指向Target所指節點的父節點。
   eventPhase:指定了事件傳播的階段。是一個數字。
   timeStamp:事件發生的時間。
   bubbles:指明該事件是否起泡。
   cancelable:指明該事件是否可以用preventDefault()方法來取消預設的動作。
   preventDefault()方法:取消事件的預設動作;
   stopPropagation()方法:停止事件傳播。
  2.UIEvent
   view:發生事件的window對象。
   detail:提供事件的額外資訊,對於單擊事件、mousedown和mouseup事件都代表的是點擊次數。
  3.MouseEvent
   button:一個數字,指明在mousedown、mouseup和單擊事件中,滑鼠鍵的狀態,和IE中的button屬性類似,但是數字代表的意義不一樣,0代表左鍵,1代表中間鍵,2代表右鍵。
   altKey、ctrlKey、shiftKey、metaKey:和IE相同,但是IE沒有最後一個。
clientX、clientY:和IE的含義相同,但是在DOM標準中,這兩個屬性值都不考慮文檔的滾動情況,也就是說,無論文檔滾動到哪裡,只要事件發生在視窗左上方,clientX和clientY都是0,所以在IE中,要想得到事件發生的座標相對於文檔開頭的位置,要加上 document.body.scrollLeft和document.body.scrollTop。
   screenX、screenY:滑鼠指標相對於顯示器左上方的位置,如果你想開啟新的視窗,這兩個屬性很重要。
   relatedTarget:和IE中的fromElement、toElement類似,除了對於mouseover和mouseout有意義外,其他的事件沒什麼意義。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.