關於JS事件的幾點總結

來源:互聯網
上載者:User

標籤:ring   get   尋找   blur   clientx   目標   記錄   表單   事件冒泡   

1.理解事件(2點)
  • 事件行為本身:沒有給事件Binder 方法事件也是一直存在的,當觸發行為的時候,也對觸發對應的行為,只不過由於沒有綁定事件,導致沒有任何事件發生;
  • 事件綁定:給元素繫結一個方法;觸發行為,執行方法;
  2.DOM事件
  •  DOM0級事件:1??(onclick)屬於元素的私人屬性;2??使用DOM0級方法指定的事件處理常式被認為是元素的方法,這也就解釋為什麼事件處理常式的this指向當前元素(this的六點申明);3??事件處理常式只會在事件冒泡階段處理;4??優勢:簡單;跨瀏覽器;5??刪除事件:設定為null;btn.onclick=null;6??一個元素只能綁定一個同一類型的行為,否則後面的會覆蓋前面的行為。
  • DOM1:沒有升級事件相關的方法;
  • DOM2級事件:1??屬於公有方法,在eventTarget這個類的原型上—>所有的DOM節點都包含這兩種方法:addEventListener和removeEventlistener;2??三個參數:(事件名,回呼函數,布爾值);布爾值:true—>捕獲階段調用回呼函數;false—>冒泡階段調用回呼函數;3??addEventListener和removeEventlistener傳入的回呼函數必須相同,不能使用匿名函數;4??一般將事件添加到冒泡階段,這樣可以最大限度的相容瀏覽器。5??同一個元素可以綁定多個統一行為;
3.事件對象 *****執行某一行為時,不僅執行了Binder 方法,而且瀏覽器還會預設的給這個方法傳遞一個參數,這個參數就是—>event,事件對象。事件對象的特點:1??對象資料類型,包含有很多的屬性名稱和屬性值,用來記錄行為的相關資訊;2??MouseEvent——UIEvent——Event——Object  原型3??MouseEvent記錄的是頁面中唯一一個滑鼠每次觸發的相關資訊,和到底在哪個元素上觸發沒有關係。 4.事件對象的相容性問題
  • 事件對象本身的相容性問題:e=e||window.event;
  • e.type:當前行為類型,相容;
  • e.clientX/Y:距離可視視窗左上方x,y值,相容;
  • e.pageX/Y:距離body(第一屏)左上方x,y值,IE678不相容;
e.pageX=(document.documentElement.scrollLeft||document.body.scrollLeft)+ e.clientX;
  • e.target:事件來源,當前行為觸發元素,儲存的就是那個元素IE678不相容,e.target=e.target||e.srcElement;
  • e.preventDafault:阻止瀏覽器的預設行為,IE678不相容;e.preventDafault?e.preventDafault:e.returnvalue=false;
  • e.stopPropagation:阻止事件冒泡傳播,IE678不相容;e.stopPropagation?e.stopPropagation:e.cancelBubble=true;
5.事件的傳播機制
  • 捕獲:從外向內依次尋找元素,event capturing;
  • 目標:當前述事件來源本省的操作;
  • 冒泡:從內到外依次觸發的相關行為,event bubbing;
   6.常見事件類型         1.滑鼠事件onclick onmouseover onmouseout onmouseenter onmouseleave ondbclick...    2.系統事件    onload onscroll onresize...    3.表單事件    onfocus onblur    4.鍵盤事件  onkeydown onkeyup onkeypress... 

關於JS事件的幾點總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.