DOM 事件
HTML DOM 讓 JavaScript 有能力對 HTML 事件做出反應。
對事件做出反應
我們可以在事件發生時執行 JavaScript,例如當使用者在 HTML 元素上點擊時。
如需在使用者點選某個元素時執行程式碼,請為一個HTML 事件屬性新增JavaScript 程式碼:
HTML 事件的範例:
當使用者點擊滑鼠時
#當網頁已載入時
當圖像已載入時
當滑鼠移到元素上時
當輸入欄位被改變時
當提交HTML 表單時
當使用者觸發按鍵時
在本例中,當使用者在 <h1> 元素上點選時,會改變其內容:
#實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <h1 onclick="this.innerHTML='Ooops!'">点击文本!</h1> </body> </html>
執行實例»
實例
##<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<head>
<script>
function changetext(id){
id.innerHTML="Ooops!";
}
</script>
</head>
<body>
<h1 onclick="changetext(this)">点击文本!</h1>
</body>
</html>
運行實例»實例<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <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>
運行實例»點擊"運行實例" 按鈕查看線上實例實例#
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <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 元素。
按鈕點擊時Javascript函數將會被執行。
onload 和onunload 事件
onchange 事件
onchange 事件常常結合對輸入欄位的驗證來使用。
下面是一個如何使用 onchange 的範例。當使用者改變輸入欄位的內容時,會呼叫 upperCase() 函數。
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body onload="checkCookies()"> <script> function checkCookies(){ if (navigator.cookieEnabled==true){ alert("Cookies 可用") } else{ alert("Cookies 不可用") } } </script> <p>弹窗-提示浏览器cookie是否可用。</p> </body> </html>
運行實例»
點擊"運行實例" 按鈕查看線上實例
onmouseover 和onmouseout 事件
onmouseover 和onmouseout 事件可用於在使用者的滑鼠移至HTML 元素上方或移出元素時觸發函數。
實例
一個簡單的onmouseover-onmouseout 實例:
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <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>
#執行實例»
點擊"執行實例"按鈕查看線上實例
onmousedown、onmouseup 以及onclick 事件
#onmousedown, onmouseup 以及onclick構成了滑鼠點擊事件的所有部分。首先當點擊滑鼠按鈕時,會觸發 onmousedown 事件,當釋放滑鼠按鈕時,會觸發 onmouseup 事件,最後,當完成滑鼠點擊時,會觸發 onclick 事件。
實例
一個簡單的onmousedown-onmouseup 實例:
更多實例
onmousedown 和onmouseup
當使用者按下滑鼠按鈕時,更換一幅圖像。
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:#D94A38;width:120px;height:20px;padding:40px;">Mouse Over Me</div> <script> function mOver(obj){ obj.innerHTML="Thank You" } function mOut(obj){ obj.innerHTML="Mouse Over Me" } </script> </body> </html>
運行實例»
點擊"運行實例" 按鈕查看線上實例
onload
當頁面完成載入時,顯示一個提示框。
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <head> <script> function lighton(){ document.getElementById('myimage').src="/upload/course/000/000/009/5804353cb2562758.gif"; } function lightoff(){ document.getElementById('myimage').src="/upload/course/000/000/009/580432b53cb5d221.gif"; } </script> </head> <body> <img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="/upload/course/000/000/009/580432b53cb5d221.gif" width="100" height="180" /> <p>点击不释放鼠标灯将一直亮着!</p> </body> </html>
運行實例»
點擊"運行實例" 按鈕查看線上實例
onfocus
當輸入欄位獲得焦點時,改變其背景色。
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <head> <script> function mymessage(){ alert("消息在 onload 事件触发后弹出。"); } </script> </head> <body onload="mymessage()"></body> </html>
運行實例»
點擊"運行實例" 按鈕查看線上實例
滑鼠事件
當指標移動到元素上方時,改變其顏色;當指標移出文字後,會再次改變其顏色。
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <head> <script> function myFunction(x){ x.style.background="yellow"; } </script> </head> <body> 输入你的名字: <input type="text" onfocus="myFunction(this)"> <p>当输入框获取焦点时,修改背景色(background-color属性) 将被触发。</p> </body> </html>
執行實例 »
點擊 "執行實例" 按鈕查看線上實例