1. การไหลของเหตุการณ์
สตรีมเหตุการณ์อธิบายลำดับที่ได้รับเหตุการณ์จากหน้า แต่ IE เสนอลำธารฟองในขณะที่ NetScape Communicator เสนอการจับกระแส
สตรีมเหตุการณ์ JavaScript
2. Event Bubble
เหตุการณ์เริ่มต้นที่จะได้รับโดยองค์ประกอบที่เฉพาะเจาะจงที่สุด (โหนดที่มีลำดับชั้นการทำรังที่ลึกที่สุด) จากนั้นแพร่กระจายขึ้นทีละขั้นตอนไปยังโหนดที่เฉพาะเจาะจงน้อยลง (เอกสาร) ดังนี้:
การคัดลอกรหัสมีดังนี้:
<html>
<head>
<title> เหตุการณ์เดือดร้อน </title>
</head>
<body>
<div id = "mydiv"> คลิกฉัน </div>
</body>
</html>
window.onload = function () {
var obj = document.getElementById ("ทดสอบ");
obj.onclick = function () {
การแจ้งเตือน (this.tagname);
-
document.body.onclick = function () {
การแจ้งเตือน (this.tagname);
-
document.documentelement.onclick = function () {
การแจ้งเตือน (this.tagname);
-
document.onclick = function () {
การแจ้งเตือน ("เอกสาร");
-
window.onclick = function () {
การแจ้งเตือน ("หน้าต่าง");
-
-
ลำดับการแพร่กระจายเหตุการณ์: div-> body-> html-> เอกสาร
สังเกต:
เบราว์เซอร์ที่ทันสมัยทั้งหมดรองรับเหตุการณ์ฟองสบู่ แต่มีความแตกต่างในการใช้งาน ฟองสบู่ใน IE5.5 และเวอร์ชันก่อนหน้านี้จะกระโดดโดยตรงจากร่างกายไปยังเอกสาร (ไม่มีการดำเนินการ HTML) Firefox, Chrome และ Safari Bubble เหตุการณ์ไปจนถึงวัตถุหน้าต่าง
3. หยุดฟองเหตุการณ์และยกเลิกเหตุการณ์เริ่มต้น
. รับวัตถุเหตุการณ์
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น getEvent (เหตุการณ์) {
// window.event เช่น
// เหตุการณ์ที่ไม่ใช่
เหตุการณ์ส่งคืน || window.event;
-
ฟังก์ชัน b: หยุดฟองเหตุการณ์
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่นหยุดบ่ม (e) {
// ถ้ามีวัตถุเหตุการณ์นี้เป็นเบราว์เซอร์ที่ไม่ใช่
ถ้า (e && e.stoppropagation) {
// ดังนั้นจึงรองรับวิธี stoppropagation () ของ W3C
E.StopPropagation ();
} อื่น {
// มิฉะนั้นเราต้องใช้ IE เพื่อยกเลิกฟองสบู่เหตุการณ์
window.event.cancelBubble = true;
-
-
ค. บล็อกพฤติกรรมเริ่มต้นของเบราว์เซอร์
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น stopdefault (e) {
// บล็อกการดำเนินการเริ่มต้นเบราว์เซอร์ (W3C)
if (e && e.preventDefault) {
E.preventDefault ();
} อื่น {
// วิธีบล็อกการกระทำเริ่มต้นของฟังก์ชั่นใน IE
window.event.returnvalue = false;
-
กลับเท็จ;
-