您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關JavaScript HTML DOM中如何 對HTML事件做出反應,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
JavaScript HTML DOM 事件
HTML DOM 使 JavaScript 有能力對 HTML 事件做出反應。
我們可以在事件發生時執行 JavaScript,比如當用戶在 HTML 元素上點擊時。
HTML 事件的例子:
當用戶點擊鼠標時
當網頁已加載時
當圖像已加載時
當鼠標移動到元素上時
當輸入字段被改變時
當提交 HTML 表單時
當用戶觸發按鍵時
下面的實例中,當用戶在 <h2> 元素上點擊時,會改變其內容:
<h2 onclick="this.innerHTML="謝謝!"">請點擊該文本</h2>
下面的實例從事件處理器調用一個函數:
<!DOCTYPE html> <html> <head> <script> function changetext(id) { id.innerHTML="謝謝!"; } </script> </head> <body> <h2 onclick="changetext(this)">請點擊該文本</h2> </body> </html>
HTML 事件屬性
如需向 HTML 元素分配事件,您可以使用事件屬性。
例如,你可以向 button 元素分配 onclick 事件:
<!DOCTYPE html> <html> <body> <p>點擊按鈕就可以執行 <em>displayDate()</em> 函數。</p> <button onclick="displayDate()">點擊這里</button> <script> function displayDate() { document.getElementById("demo").innerHTML=Date(); } </script> <p id="demo"></p> </body> </html>
注釋:在上面的例子中,名為 displayDate 的函數將在按鈕被點擊時執行。
使用 HTML DOM 來分配事件
HTML DOM 允許您通過使用 JavaScript 來向 HTML 元素分配事件。
例如,可以向 button 元素分配 onclick 事件:
<!DOCTYPE html> <html> <head> </head> <body> <p>點擊按鈕就可以執行 <em>displayDate()</em> 函數。</p> <button id="myBtn">點擊這里</button> <script> document.getElementById("myBtn").onclick=function(){displayDate()}; function displayDate() { document.getElementById("demo").innerHTML=Date(); } </script> <p id="demo"></p> </body> </html>
注釋:在上面的例子中,名為 displayDate 的函數被分配給 id=myButn" 的 HTML 元素。
onload 和 onunload 事件
onload 和 onunload 事件會在用戶進入或離開頁面時被觸發。
<!DOCTYPE html> <html> <head> <script> function mymessage() { alert("這段消息由 onload 事件觸發"); } </script> </head> <body onload="mymessage()"> </body> </html>
onload 事件可用于檢測瀏覽器類型和瀏覽器版本,并基于這些信息來加載網頁的正確版本。
如,onload 和 onunload 事件可用于處理 cookie:
<!DOCTYPE html> <html> <body onload="checkCookies()"> <script> function checkCookies() { if (navigator.cookieEnabled==true) { alert("已啟用 cookie") } else { alert("未啟用 cookie") } } </script> <p>提示框會告訴你,瀏覽器是否已啟用 cookie。</p> </body> </html>
onchange 事件
onchange 事件常結合對輸入字段的驗證來使用。
例如,當用戶改變輸入字段的內容時,會調用 upperCase() 函數:
<!DOCTYPE html> <html> <head> <script> function myFunction() { var x=document.getElementById("fname"); x.value=x.value.toUpperCase(); } </script> </head> <body> 請輸入英文字符: <input type="text" id="fname" onchange="myFunction()"> <p>當您離開輸入字段時,會觸發將輸入文本轉換為大寫的函數。</p> </body> </html>
onmouseover 和 onmouseout 事件
這兩個事件可分別用于在用戶的鼠標移至 HTML 元素上方或移出元素時觸發函數。
<h2 onmouseover="style.color="red"" onmouseout="style.color="blue""> 請把鼠標移到這段文本上 </h2>
下面是一個簡單的 onmouseover-onmouseout 實例:
<!DOCTYPE html> <html> <body> <div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;"> 把鼠標移到上面 </div> <script> function mOver(obj) { obj.innerHTML="謝謝" } function mOut(obj) { obj.innerHTML="把鼠標移到上面" } </script> </body> </html>
onmousedown、onmouseup 以及 onclick 事件
onmousedown, onmouseup 以及 onclick 構成了鼠標點擊事件的所有部分:
當點擊鼠標按鈕時,會觸發 onmousedown 事件,
當釋放鼠標按鈕時,會觸發 onmouseup 事件
當完成鼠標點擊時,會觸發 onclick 事件
下面是一個簡單的 onmousedown-onmouseup 實例:
<!DOCTYPE html> <html> <body> <div onmousedown="mDown(this)" onmouseup="mUp(this)" style="background-color:green;color:#ffffff;width:90px;height:20px;padding:40px;font-size:12px;"> 請點擊這里 </div> <script> function mDown(obj) { obj.style.backgroundColor="#1ec5e5"; obj.innerHTML="請釋放鼠標按鈕" } function mUp(obj) { obj.style.backgroundColor="green"; obj.innerHTML="請按下鼠標按鈕" } </script> </body> </html>
下面的實例中,當用戶按下鼠標按鈕時,更換一幅圖像。
<!DOCTYPE html> <html> <head> <script> function lighton() { document.getElementById("myimage").src="../lighton.gif"; } function lightoff() { document.getElementById("myimage").src="../lightoff.gif"; } </script> </head> <body> <img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="../lightoff.gif" /> <p>按住鼠標不放可以點亮這盞燈!</p> </body> </html>
onfocus 事件
<!DOCTYPE html> <html> <head> <script> function myFunction(x) { x.style.background="yellow"; } </script> </head> <body> 請輸入英文字符: <input type="text" onfocus="myFunction(this)"> <p>當輸入字段獲得焦點時,會觸發改變背景顏色的函數。</p> </body> </html>
關于“JavaScript HTML DOM中如何 對HTML事件做出反應”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。