1. 程式人生 > >js筆記:事件(上)

js筆記:事件(上)

1、什麼是事件   是指使用者在某事務上由於某種行為所執行的操作; (對頁面元素的某種操作) 2、 事件的三要素   事件源:是指在哪個元素引發的事件,如:a標籤、div標籤   事件:事件是指執行的動作     如:單擊、雙擊等   事件驅動程式(事件處理程式):即執行的結果     如:單擊button標籤所執行的函式 3、event   event物件,被稱為事件物件。   因此它只會在發生一個事件時可用。不同的事件產生的事件物件不同     存在相容 :      在IE中,獲取event物件:       xxx.onclick = function(){            alert(window.event);       }   在非IE瀏覽器,獲取event物件,用傳參的方式:     xxx.onclick = function( e
){          console.log(e)       相容問題 : e = e || window.event     } 4、event.button屬性介紹   button屬性 : 用來確認使用者操作的是左鍵   滾輪   右鍵   左鍵  0   滾輪  1   右鍵  2   5、 event.clientX、event.clientY   event.pageX、event.pageY   event.offsetX、event.offsetY

  event.clientX、event.clientY
  滑鼠相對於瀏覽器視窗可視區域的X,Y座標(視窗座標),可視區域不包括工具欄和滾動條

  event.pageX、event.pageY    它們使用的是文件座標而非視窗座標,也就是滑鼠到頁面的距離   event.offsetX、event.offsetY   滑鼠到盒子本身的距離   6、鍵盤事件   1、onkeydown :鍵盤按下觸發事件,功能鍵也能識別(shift  / ctrl / alt);不能識別大小寫;   2、onkeyup : 鍵盤彈起觸發事件;也能識別功能鍵  不能識別大小寫   3、onkeypress:鍵盤按下觸發事件,不能識別功能鍵的keyCode;能識別大小寫;
7、組合鍵ctrlKey、altKey   ctrlKey 事件屬性可返回一個布林值,指示當事件發生時,Ctrl 鍵是否被按下   altKey 事件屬性返回一個布林值。指示在指定的事件發生時,Alt 鍵是否被按下 8、keyCode/which相容   keyCode/which   獲取鍵盤的按鍵值   IE8 及其更早版本不支援 which 屬性。不支援的瀏覽器可使用  keyCode 屬性。但是, keyCode 屬性在 Firefox 瀏覽器的   onkeypress 事件中是無效的。 相容這些瀏覽器你可以使用以下程式碼   var x = event.which || event.keyCode;   使用 which 或 keyCode, 這樣可支援不同瀏覽器   注意: 在onkeypress事件中, 如果按住ctrl + 回車   ,此時,回車鍵的keyCode的值為10  9、事件流   當產生某個事件時,事件從子元素向父元素觸發或從父元素向子元素觸發的過程 稱為事件流   事件流的兩種模式 :       事件冒泡  ---  從子元素向父元素觸發  small ---> big --> body ---> document ---> window       事件捕獲  ---  從父元素向子元素觸發  window -- > document --- > body --- > big --> smal 10、事件冒泡   事件從事件目標(target)開始,往上冒泡直到頁面的最上一級標籤   阻止事件冒泡相容:      e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;