淺析JavaScript中的事件機(jī)制
事件是什么 ?
JavaScript與HTML交互是通過在用戶或瀏覽器操縱頁面上發(fā)生的事件進(jìn)行處理。
當(dāng)頁面加載,這是一個事件。當(dāng)用戶點(diǎn)擊一個按鈕,這一下,也就是一個事件。事件的另一個例子是類似按下任意鍵,關(guān)閉窗口,調(diào)整窗口等。
開發(fā)者可以使用這些事件執(zhí)行JavaScript編碼響應(yīng),這引起按鈕以關(guān)閉視窗,消息,以便顯示給用戶,要驗證的數(shù)據(jù),以及幾乎任何其它類型的響應(yīng)可以發(fā)生的。
事件是文檔對象模型(DOM)第3級,每一個HTML元素的一部分有一套可以觸發(fā)JavaScript代碼事件。
例子:
<html> <head> <script type="text/javascript"> <!-- function sayHello() { alert("Hello World") } //--> </script> </head> <body> <input type="button" onclick="sayHello()" value="Say Hello" /> </body> </html>
這將產(chǎn)生以下結(jié)果,當(dāng)你點(diǎn)擊“Hello”按鈕,然后會的onclick事件的發(fā)生將觸發(fā)sayHello()函數(shù)。
onsubmit 事件類型:
另一個最重要的事件類型是 onsubmit。當(dāng)嘗試提交表單時引發(fā)此事件。所以,可以把表單驗證針對此事件類型。
下面是簡單的例子,說明它的用法。在這里,我們提交表單數(shù)據(jù)到Web服務(wù)器之前,調(diào)用一個validate()函數(shù)。如果表單將被提交的validate()函數(shù)返回true,否則不會提交數(shù)據(jù)。
例子:
<html> <head> <script type="text/javascript"> <!-- function validation() { all validation goes here ......... return either true or false } //--> </script> </head> <body> <form method="POST" action="t.cgi" onsubmit="return validate()"> ....... <input type="submit" value="Submit" /> </form> </body> </html>
onmouseover 和 onmouseout:
這兩個事件類型將幫助創(chuàng)建圖片甚至用文字以及不錯的效果。當(dāng)把鼠標(biāo)在任何元素,當(dāng)從元素把鼠標(biāo)移出發(fā)生onmouseout事件,移過時發(fā)生 onmouseover 事件。
例子:
下面的例子說明,分組反應(yīng)如下:
<html> <head> <script type="text/javascript"> <!-- function over() { alert("Mouse Over"); } function out() { alert("Mouse Out"); } //--> </script> </head> <body> <div onmouseover="over()" onmouseout="out()"> <h2> This is inside the division </h2> </div> </body> </html>
可以使用這兩個事件類型改變不同的圖像,也可以創(chuàng)建幫助你的用戶。
HTML 4 標(biāo)準(zhǔn)事件
標(biāo)準(zhǔn)的HTML4事件列在這里,供大家參考。下面的腳本顯示一個Javascript函數(shù)功能以對該事件執(zhí)行。
相關(guān)文章
Javascript學(xué)習(xí)筆記6 prototype的提出
所以你還會再說是否用prototype都是一樣的么?其實(shí)我以前也是這么理解的,在這次偶然的試驗中看到了這個問題。2010-01-01Javascript 按位左移運(yùn)算符使用介紹(<<)
這篇文章主要介紹了Javascript 按位左移運(yùn)算符 (<<) 將表達(dá)式數(shù)字轉(zhuǎn)換成二進(jìn)制,之后向左移表達(dá)式的位的相關(guān)資料,需要的朋友可以參考下2014-02-02解決 firefox 不支持 document.all的方法
解決 firefox 不支持 document.all的方法...2007-03-03