เหตุการณ์ JavaScript DOM


สารบัญ

    แสดงสารบัญ


HTML DOM ช่วยให้ JavaScript ตอบสนองต่อเหตุการณ์ HTML:

Mouse Over Me
Click Me
function clickMeEvent(obj) { if (obj.innerHTML == "Click Me") { obj.innerHTML = "Click Me
Click Me Again"; return; } if (obj.innerHTML == "Click Me
Click Me Again") { obj.innerHTML = "Thank You"; return; } if (obj.innerHTML == "Thank You") { obj.innerHTML = "Goodbye"; return; } if (obj.innerHTML == "Goodbye") { obj.style.display = "none"; return; } }

การตอบสนองต่อเหตุการณ์

JavaScript สามารถดำเนินการได้เมื่อมีเหตุการณ์เกิดขึ้น เช่น เมื่อผู้ใช้คลิกที่องค์ประกอบ HTML

หากต้องการรันโค้ดเมื่อผู้ใช้คลิกที่องค์ประกอบ ให้เพิ่มโค้ด JavaScript ให้กับแอตทริบิวต์เหตุการณ์ HTML:

onclick=JavaScript

ตัวอย่างของเหตุการณ์ HTML:

  • เมื่อผู้ใช้คลิกเมาส์

  • เมื่อโหลดหน้าเว็บแล้ว

  • เมื่อโหลดรูปภาพแล้ว

  • เมื่อเมาส์เลื่อนไปเหนือองค์ประกอบ

  • เมื่อช่องป้อนข้อมูลมีการเปลี่ยนแปลง

  • เมื่อส่งแบบฟอร์ม HTML

  • เมื่อผู้ใช้กดคีย์

ในตัวอย่างนี้ เนื้อหาขององค์ประกอบ <h1> มีการเปลี่ยนแปลงเมื่อผู้ใช้คลิก:

ตัวอย่าง

<!DOCTYPE html>
<html>
<body>

<h1 onclick="this.innerHTML = 'Ooops!'">Click on this text!</h1>

</body>
</html>

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript HTML Events</h2>
<h2 onclick="this.innerHTML='Ooops!'">Click on this text!</h2>

</body>
</html>

ในตัวอย่างนี้ ฟังก์ชันถูกเรียกจากตัวจัดการเหตุการณ์:

ตัวอย่าง

<!DOCTYPE html>
<html>
<body>

<h1 onclick="changeText(this)">Click on this text!</h1>
 
<script>
function changeText(id) {

  id.innerHTML = "Ooops!";
}
</script>

</body>
</html>

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript HTML Events</h2>
<h2 onclick="changeText(this)">Click on this text!</h2>

<script>
function changeText(id) {
  id.innerHTML = "Ooops!";
}
</script>

</body>
</html>


คุณสมบัติเหตุการณ์ HTML

หากต้องการกำหนดเหตุการณ์ให้กับองค์ประกอบ HTML คุณสามารถใช้แอตทริบิวต์เหตุการณ์ได้

ตัวอย่าง

กำหนดเหตุการณ์ onclick ให้กับองค์ประกอบปุ่ม:

<button onclick="displayDate()">Try it</button>

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript HTML Events</h2>
<p>Click the button to display the date.</p>

<button onclick="displayDate()">The time is?</button>

<script>
function displayDate() {
  document.getElementById("demo").innerHTML = Date();
}
</script>

<p id="demo"></p>

</body>
</html> 

ในตัวอย่างข้างต้น ฟังก์ชันชื่อ displayDate จะถูกดำเนินการ เมื่อคลิกปุ่ม


กำหนดกิจกรรมโดยใช้ HTML DOM

HTML DOM ช่วยให้คุณสามารถกำหนดเหตุการณ์ให้กับองค์ประกอบ HTML โดยใช้ JavaScript:

ตัวอย่าง

กำหนดเหตุการณ์ onclick ให้กับองค์ประกอบปุ่ม:

<script>
document.getElementById("myBtn").onclick = displayDate;
</script>

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript HTML Events</h2>
<p>Click "Try it" to execute the displayDate() function.</p>

<button id="myBtn">Try it</button>

<p id="demo"></p>

<script>
document.getElementById("myBtn").onclick = displayDate;

function displayDate() {
  document.getElementById("demo").innerHTML = Date();
}
</script>

</body>
</html> 

ในตัวอย่างข้างต้น มีการกำหนดฟังก์ชันชื่อ displayDate ให้กับ องค์ประกอบ HTML ที่มี id="myBtn"

ฟังก์ชั่นจะถูกดำเนินการ เมื่อคลิกปุ่ม


เหตุการณ์ onload และ onunload

เหตุการณ์ onload และ onunload จะถูกทริกเกอร์เมื่อผู้ใช้เข้าหรือออกจากเพจ

เหตุการณ์ onload สามารถใช้เพื่อตรวจสอบประเภทเบราว์เซอร์และเวอร์ชันเบราว์เซอร์ของผู้เยี่ยมชม และโหลดเวอร์ชันที่เหมาะสมของหน้าเว็บตามข้อมูล

เหตุการณ์ onload และ onunload สามารถใช้เพื่อจัดการกับคุกกี้ได้

ตัวอย่าง

<body onload="checkCookies()">

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body onload="checkCookies()">

<h2>JavaScript HTML Events</h2>

<p id="demo"></p>

<script>
function checkCookies() {
  var text = "";
  if (navigator.cookieEnabled == true) {
    text = "Cookies are enabled.";
  } else {
    text = "Cookies are not enabled.";
  }
  document.getElementById("demo").innerHTML = text;
}
</script>

</body>
</html> 

เหตุการณ์การเปลี่ยนแปลง

เหตุการณ์ onchange มักจะใช้ร่วมกับการตรวจสอบฟิลด์อินพุต

ด้านล่างนี้เป็นตัวอย่างวิธีการใช้ onchange ตัวพิมพ์ใหญ่() ฟังก์ชันจะถูกเรียกเมื่อผู้ใช้เปลี่ยนเนื้อหาของช่องป้อนข้อมูล

ตัวอย่าง

<input type="text" id="fname"
onchange="upperCase()">

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript HTML Events</h2>
Enter your name: <input type="text" id="fname" onchange="upperCase()">
<p>When you leave the input field, a function is triggered which transforms the input text to upper case.</p>

<script>
function upperCase() {
  const x = document.getElementById("fname");
  x.value = x.value.toUpperCase();
}
</script>

</body>
</html>

เหตุการณ์ onmouseover และ onmouseout

เหตุการณ์ onmouseover และ onmouseout สามารถใช้เพื่อทริกเกอร์ฟังก์ชันเมื่อผู้ใช้ใช้เมาส์ เหนือหรือนอกองค์ประกอบ HTML:

Mouse Over Me

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<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> 

เหตุการณ์ onmousedown, onmouseup และ onclick

เหตุการณ์ onmousedown, onmouseup และ onclick ล้วนเป็นส่วนหนึ่งของก คลิกเมาส์ ขั้นแรกเมื่อคลิกปุ่มเมาส์ เหตุการณ์ onmousedown จะเกิดขึ้น ทริกเกอร์แล้วเมื่อปุ่มเมาส์ ถูกปล่อยออกมา เหตุการณ์ onmouseup จะถูกทริกเกอร์ ในที่สุด เมื่อการคลิกเมาส์เสร็จสิ้น เหตุการณ์ onclick จะถูกทริกเกอร์

Click Me
function mDown(obj) { obj.style.backgroundColor="#1ec5e5"; obj.innerHTML="Release Me" } function mUp(obj) { obj.style.backgroundColor="#D94A38"; obj.innerHTML="Thank You" }

ลองด้วยตัวคุณเอง →

<!DOCTYPE html>
<html>
<body>

<div onmousedown="mDown(this)" onmouseup="mUp(this)"
style="background-color:#D94A38;width:90px;height:20px;padding:40px;">
Click Me</div>

<script>
function mDown(obj) {
  obj.style.backgroundColor = "#1ec5e5";
  obj.innerHTML = "Release Me";
}

function mUp(obj) {
  obj.style.backgroundColor="#D94A38";
  obj.innerHTML="Thank You";
}
</script>

</body>
</html> 

ตัวอย่างเพิ่มเติม

onmousedown และ onmouseup

<!DOCTYPE html>
<html>
<head>
<script>
function lighton() {
  document.getElementById('myimage').src = "bulbon.gif";
}
function lightoff() {
  document.getElementById('myimage').src = "bulboff.gif";
}
</script>
</head>

<body>

<img id="myimage" onmousedown="lighton()" onmouseup="lightoff()" src="bulboff.gif" width="100" height="180" />

<p>Click mouse and hold down!</p>

</body>
</html>

เปลี่ยนรูปภาพเมื่อผู้ใช้กดปุ่มเมาส์ค้างไว้

กำลังโหลด

<!DOCTYPE html>
<html>
<head>

<script>
function mymessage() {
  alert("This message was triggered from the onload event");
}
</script>
</head>

<body onload="mymessage()">
</body>

</html>

แสดงกล่องแจ้งเตือนเมื่อโหลดเพจเสร็จแล้ว

ออนโฟกัส

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction(x) {
  x.style.background = "yellow";
}
</script>
</head>
<body>

Enter your name: <input type="text" onfocus="myFunction(this)">

<p>When the input field gets focus, a function is triggered which changes the background-color.</p>

</body>
</html>

เปลี่ยนสีพื้นหลังของช่องป้อนข้อมูลเมื่อได้รับการโฟกัส

เหตุการณ์เมาส์

<!DOCTYPE html>
<html>
<body>

<h1 onmouseover="style.color='red'"
onmouseout="style.color='black'">
Mouse over this text</h1>

</body>
</html>

เปลี่ยนสีขององค์ประกอบเมื่อเคอร์เซอร์เลื่อนไปเหนือองค์ประกอบนั้น


อ้างอิงวัตถุเหตุการณ์ HTML DOM

สำหรับรายการเหตุการณ์ HTML DOM ทั้งหมด โปรดดูการอ้างอิงวัตถุเหตุการณ์ HTML DOM ฉบับสมบูรณ์ของเรา