close

按此前往javascript完整教學目錄

 

 

所謂「事件」,是指使用者對網頁中的某個元件進行某種操作時會發生,所謂的「事件處理函式」,則是在該事件發生後的那一瞬間所執行的函式。每種事件的事件處理函式,其名稱都是在事件名稱前加上on兩個字母。例如,load事件的事件處理函式名為onloadclick事件的事件處理函式名為onclick…等等。要為一個元件設定某事件的事件處理函式,可以將事件處理函式寫在該元件的html標籤的屬性(屬性名稱就是事件處理函式的名稱,如onloadonclick等等)中,也可以寫在javascript程式碼區中。

 

 

※     在html標籤中定義網頁事件、表單事件與控制項事件的事件處理函式

前註:有一些事件,只限定在某些瀏覽器或瀏覽器版本才能夠使用,換了個瀏覽器、或版本,即不能用了。而以下所介紹的事件,在現行的所有瀏覽器及版本中都能運作正常。

1. 瀏覽器事件:表示使用者對瀏覽器進行操作。瀏覽器事件要寫在主體區標籤<body>之內。常用的瀏覽器事件及其相對應的事件處理函式介紹如下:

(1) load事件、onload事件處理函式:當使用者開啟網頁時,實際上所執行的動作,是向伺服端發出一個「要求」,要求瀏覽網頁,若此要求被允許,則伺服端會傳送網頁文件檔給用戶端,load事件即代表「用戶端瀏覽器下載完網頁文件檔」這一件事的發生。其事件處理函式的用法例如:

<body onload="alert('歡迎光臨!!');" ></body>

//執行後顯示:

image

(2) unload事件、onunload事件處理函式:unload事件代表「用戶端執行跳轉網頁或關閉網頁」此一操作的發生。其事件處理函式的用法例如(設伺服器資料夾內有一網頁檔案名test2.php):

<body onunload="alert('謝謝光臨!!');" >

<a href="test2.php">點我跳轉網頁</a>

</body>

//執行後下超連結,然後顯示:

image

(3) resize事件、onresize事件處理函式:resize事件代表使用者改變瀏覽器視窗的大小」此一操作的發生。其事件處理函式用法例如:

<body onresize="document.getElementById('tt').value+='x';">

<input id="tt" type="text" />

</body>

 

2. 表單事件:表示使用者對表單進行操作。表單事件之事件處理函式只能寫在表單標籤<from>之內。常用的表單事件及其事件處理函式有(以下程式碼皆寫在主體區)

(1) reset事件、onreset事件處理函式:reset事件表示在表單中按下reset控制項這個操作。這不會掩蓋掉reset控制項原本的效果。其事件處理函式的用法如:

<form name="表單一" method="post"   onreset="this.term1.size=50" >

<input name="term1" type="text" size="10"/>

<input type="reset" value="按我"/>

</form>

執行結果顯示:

image

按下「按我」之後,顯示:

image

確實已達到將文字方塊加長的效果。

注意:script指令碼中,若欲為控制項的某個屬性設值,其寫法為:表單名稱.控制項名稱.屬性=。在上例中,this表示該表單本身。

(2) submit事件、onsubmit事件處理函式:submit事件表示在表單5中按下submit控制項這個操作。其事件處理函式的用法如:

<form name="表單一" method="post"   onsubmit="

if(!(this.term1.value))

{return false;}

else

{this.summit();}

" >

<input name="term1" type="text" size="10"/>

<input type="submit" value="呈交"/>

</form>

說明:上述javascript指令碼中表示:「如果term1沒有被使用者輸入,則表單不會呈交。若有被輸入,則呈交」。可用來檢查表單是否被完整輸入(這是重要應用!)

 

3.控制項事件(適用於輸入控制項,也適用於其他表單控制項):表示使用者對控制項進行操作。控制項事件的事件處理函式是寫在控制項標籤之內。常用的控制項事件有(以下程式碼皆寫在主體區)

(1) click事件:控制項被滑鼠左鍵按下,就觸發此事件。其事件處理函式名為onclick

(2) dbclick事件:控制項被滑鼠左鍵雙擊,就觸發此事件。其事件處理函式名為ondbclick

(3) focus事件:控制項「成為焦點」,就觸發此事件。所謂的「成為焦點」,指的是控制項被使用者所選取而成為當前欲操作的控制項(用滑鼠點擊控制項、或用鍵盤選取都會使控制項「成為焦點」)。其事件處理函式名為onfocus

(4) blur事件:控制項「失焦」時,就觸發此事件。所謂「失焦」,即控制項在「成為焦點」之後,使用者不再選取此控制項。譬如在點擊此控制項之後,使用者又點擊的網頁其他地方,造成此控制項「失焦」。其事件處理函式名為onblur

(5) change事件:表單的值受到使用者的改變時,就觸發此事件。其事件處理函式名為onchange

用法如下:

<form name="表單一" method="post"  action="test2.php"  >

<input name="term1" type="text" size="10"  onchange="

if(this.size==10){this.size=50;}

else{this.size=10;}"/>

<input type="submit" value="呈交"/>

</form>

執行結果顯示:

image

輸入kk後,顯示:

image

重新輸入kkk後,顯示:

image

(6) mousedown事件:控制項被使用者按下滑鼠按鍵(左鍵右鍵均可)時會觸發。其事件處理函式名為onmousedown

(7) mouseup事件:控制項被使用者按下滑鼠按鍵後,使用者放開按鍵(左鍵右鍵均可),就觸發此事件。其事件處理函式名為onmouseup

註:click事件事實上就是利用滑鼠左鍵產生mousedown事件之後,再用滑鼠左鍵產生mouseup事件。

(8) mousemove事件:滑鼠在控制項上移動,就觸發此事件。其事件處理函式名為onmousemove

(9) mouseover事件:滑鼠移到控制項上,就觸發此事件。其事件處理函式名為onmouseover

(10) mouseout事件:滑鼠移到控制項上後,又從控制項上移開,就觸發此事件。其事件處理函式名為onmouseout

(11) mouseenter事件:滑鼠進入控制項中,就觸發此事件。其事件處理函式名為onmouseenter

(12) mouseleave事件:滑鼠進入控制項後,又從控制項上移開,就觸發此事件。其事件處理函式名為onmouseleave

(13) keydown事件:用鍵盤選取控制項(用tab鍵或快捷鍵)時或者在選取此控制項後,使用者按下鍵盤,就觸發此事件。其事件處理函式名為onkeydown,用法如:

<input name="tt" type="text"  onkeydown="this.value+='d'"/>

//執行後,在文字輸入框輸入a,顯示:

image

(14) keyup事件:用鍵盤選取控制項時或者在選取此控制項後,使用者按下鍵盤之後鬆開的動作,就觸發此事件。其事件處理函式名為onkeyup

(15) keypress事件:用鍵盤選取控制項,使用者完成整個「按」的動作後,就觸發此事件。其事件處理函式名為onkeypress。註:keypress事件事實上就是keydown事件而後再加上keyup事件。

(16) select事件:使用者選取控制項中的文字時,觸發此事件。只有對文字輸入控制項來說才有效果。其事件處理函式名為onselect,用法如:

<form name="表單一" method="post" action="test2.php"  >

<input name="tt" type="text" size="10" onselect="表單一.tt.size=50"><br/>

</form>

執行後,在文字方塊內輸入ggg,顯示:

image

用滑鼠將ggg給選取,顯示:

image

(17) scroll事件:若元件具有拉條scrollbar),則當拉條被拉動時,就會觸發此事件。其事件處理函式名為onscroll

 

 

上一篇:javascript中設定css樣式及style樣式

下一篇:javascript-事件處理函式

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()