JavaScript的事件驅動及事件處理

來源:互聯網
上載者:User

1、基本概念

JavaScript是基於對象(object-based)的語言。這與Java不同,Java是物件導向的語言。而基於對象的基本特徵,就是採用事件驅動(event-driven)。它是在用圖形介面的環境下,使得一切輸入變化簡單化。通常滑鼠或熱鍵的動作我們稱之為事件(Event),而由滑鼠或熱鍵引發的一連串程式的動作,稱之為事件驅動(Event Driver)。而對事件進行處理常式或函數,我們稱之為事件處理常式(Event Handler)。

2、事件處理常式

在JavaScript中對象事件的處理通常由函數(Function)擔任。其基本格式與函數全部一樣,可以將前面所介紹的所有函數作為事件處理常式。格式如下:

Function 事件處理名(參數表){

事件處理語句集;

……

}

3、事件驅動

JavaScript事件驅動中的事件是通過滑鼠或熱鍵的動作引發的。它主要有以下幾個事件:

(1)單擊事件onClick

當使用者單擊滑鼠按鍵時,產生onClick事件。同時onClick指定的事件處理常式或代碼將被調用執行。通常在下列基本對象中產生:

button(按鈕對象)

checkbox(複選框)或(檢查列表框)

radio (單選鈕)

reset buttons(重要按鈕)

submit buttons(提交按鈕)

例如可通過下列按鈕啟用change()檔案:

<Form>
<Input type="button" Value=“ ” onClick="change()">
</Form>

在onClick等號後,可以使用自己編寫的函數作為事件處理常式,也可以使用JavaScript中內部的函數。還可以直接使用JavaScript的代碼等。例:

<Input type="button" value=" " onclick=alert("這是一個例子");

(2)onChange改變事件

當利用text或texturea元素輸入字元值改變時發該事件,同時當在select表格項中一個選項狀態改變後也會引發該事件。例:

<Form>
<Input type="text" name="Test" value="Test" onCharge="check('this.test)">
</Form>

(3)選中事件onSelect

當Text或Textarea對象中的文字被加亮後,引發該事件。

(4)獲得焦時間點事件onFocus

當使用者單擊Text或textarea以及select對象時,產生該事件。此時該對象成為前台對象。

(5)失去焦點onBlur

當text對象或textarea對象以及select對象不再擁有焦點、而退到後台時,引發該檔案,他與onFocas事件是一個對應的關係。

(6)載入檔案onLoad

當文檔載入時,產生該事件。onLoad一個作用就是在首次載入一個文檔時檢測cookie的值,並用一個變數為其賦值,使它可以被原始碼使用。

(7)卸載檔案onUnload

當Web頁面退出時引發onUnload事件,並可更新Cookie的狀態。

ceshicx.htm

<html>
<head>
<title>一個JavaScript的測試程式</title>
<script language="JavaScript">
<!--
function kkk(){
do{
username=prompt("請問您是何方神聖,報上名來","");
}while(username=="")
document.write(username,",久仰大名,請多多關照!");
}
//-->
</script>
</head>
<body>
<INPUT type="button" value="你敢碰我嗎?"name=button1 onClick="kkk()">
</body>
</html>

圖3-4 出始視窗

說明:這個HTML頁的起始頁如圖3-4所示,上面只有一個元素,即一個按鈕。如果不設定任何事件,但單擊該 按鈕後不會有任何反應。但現在,定義了單擊按鈕的onClick事件,並把事件交給了指令碼程式KKK()處 理。著是實現互動的第一步。接著,使用者單擊按鈕後,瀏覽器中將出現一個如圖3-5所示JavaScript的對話方塊,框中提示使用者輸入姓名。這時,只要輸入姓名並且單擊“確定”按鈕,就可以看到瀏覽器的顯 示結果如圖3-6所示。

圖3-5 提示視窗

聯繫我們

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