DOM 事件



HTML DOM 讓 JavaScript 有能力對 HTML 事件做出反應。


對事件做出反應

我們可以在事件發生時執行 JavaScript,例如當使用者在 HTML 元素上點擊時。

如需在使用者點選某個元素時執行程式碼,請為一個HTML 事件屬性新增JavaScript 程式碼:

onclick=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>

運行實例»

點擊"運行實例"按鈕查看線上實例


#HTML 事件屬性如需向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>

運行實例»

點擊"運行實例" 按鈕查看線上實例

在上面的範例中,名為displayDate 的函數會在按鈕被點擊時執行。

使用HTML DOM 來指派事件HTML DOM 允許您使用JavaScript 來為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 事件

onload 和onunload 事件會在使用者進入或離開頁面時被觸發。 onunload 事件可用於處理cookie。實例


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 實例:

Thank You

更多實例

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>

執行實例 »

點擊 "執行實例" 按鈕查看線上實例


#