jQuery 事件
jQuery 是為事件處理特别設計的。
什麼是事件?
頁面對不同通路者的響應叫做事件。
事件處理程式指的是當 HTML 中發生某些事件時所調用的方法。
執行個體:
- 在元素上移動滑鼠。
- 選取單選按鈕
- 點選元素
在事件中經常使用術語"觸發"(或"激發")例如:"當您按下按鍵時觸發 keypress 事件"。
常見 DOM 事件:
滑鼠事件 | 鍵盤事件 | 表單事件 | 文檔/視窗事件 |
---|---|---|---|
click | keypress | submit | load |
dblclick | keydown | change | resize |
mouseenter | keyup | focus | scroll |
mouseleave | blur | unload |
jQuery 事件方法文法
在 jQuery 中,大多數 DOM 事件都有一個等效的 jQuery 方法。
頁面中指定一個點選事件:
$("p").click();
下一步是定義什麼時間觸發事件。您可以通過一個事件函數實作:
$("p").click(function(){
// action goes here!!
});
常用的 jQuery 事件方法
$(document).ready()
$(document).ready() 方法允許我們在文檔完全加載完後執行函數。該事件方法在 jQuery 文法 章節中已經提到過。
click()
click() 方法是當按鈕點選事件被觸發時會調用一個函數。
該函數在使用者點選 HTML 元素時執行。
在下面的執行個體中,當點選事件在某個
元素上觸發時,隐藏目前的
元素:
執行個體
$("p").click(function(){ $(this).hide(); });
嘗試一下 »
dblclick()
當輕按兩下元素時,會發生 dblclick 事件。
dblclick() 方法觸發 dblclick 事件,或規定當發生 dblclick 事件時運作的函數:
執行個體
$("p").dblclick(function(){ $(this).hide(); });
嘗試一下 »
mouseenter()
當滑鼠指針穿過元素時,會發生 mouseenter 事件。
mouseenter() 方法觸發 mouseenter 事件,或規定當發生 mouseenter 事件時運作的函數:
執行個體
$("#p1").mouseenter(function(){ alert("You entered p1!"); });
嘗試一下 »
mouseleave()
當滑鼠指針離開元素時,會發生 mouseleave 事件。
mouseleave() 方法觸發 mouseleave 事件,或規定當發生 mouseleave 事件時運作的函數:
執行個體
$("#p1").mouseleave(function(){ alert("Bye! You now leave p1!"); });
嘗試一下 »
mousedown()
當滑鼠指針移動到元素上方,并按下滑鼠按鍵時,會發生 mousedown 事件。
mousedown() 方法觸發 mousedown 事件,或規定當發生 mousedown 事件時運作的函數:
執行個體
$("#p1").mousedown(function(){ alert("Mouse down over p1!"); });
嘗試一下 »
mouseup()
當在元素上松開滑鼠按鈕時,會發生 mouseup 事件。
mouseup() 方法觸發 mouseup 事件,或規定當發生 mouseup 事件時運作的函數:
執行個體
$("#p1").mouseup(function(){ alert("Mouse up over p1!"); });
嘗試一下 »
hover()
hover()方法用于模拟光标懸停事件。
當滑鼠移動到元素上時,會觸發指定的第一個函數(mouseenter);當滑鼠移出這個元素時,會觸發指定的第二個函數(mouseleave)。
執行個體
$("#p1").hover(function(){ alert("You entered p1!"); }, function(){ alert("Bye! You now leave p1!"); });
嘗試一下 »
focus()
當元素獲得焦點時,發生 focus 事件。
當通過滑鼠點選選中元素或通過 tab 鍵定位到元素時,該元素就會獲得焦點。
focus() 方法觸發 focus 事件,或規定當發生 focus 事件時運作的函數:
執行個體
$("input").focus(function(){ $(this).css("background-color","#cccccc"); });
嘗試一下 »
blur()
當元素失去焦點時,發生 blur 事件。
blur() 方法觸發 blur 事件,或規定當發生 blur 事件時運作的函數:
執行個體
$("input").blur(function(){ $(this).css("background-color","#ffffff"); });
嘗試一下 »
比較keypress、keydown與keyup
- keydown:在鍵盤上按下某鍵時發生,一直按着則會不斷觸發(opera浏覽器除外),它傳回的是鍵盤代碼;
- keypress:在鍵盤上按下一個按鍵,并産生一個字元時發生, 傳回ASCII碼。注意: shift、alt、ctrl等鍵按下并不會産生字元,是以監聽無效,換句話說,隻有按下能在螢幕上輸出字元的按鍵時keypress事件才會觸發。若一直按着某按鍵則會不斷觸發。
- keyup:使用者松開某一個按鍵時觸發,與keydown相對,傳回鍵盤代碼.
