บทความนี้อธิบายถึงการใช้รูปแบบเหตุการณ์ JavaScript แบ่งปันสำหรับการอ้างอิงของคุณ การวิเคราะห์เฉพาะมีดังนี้:
1. โมเดลเหตุการณ์
เดือด: เหตุการณ์จะถูกส่งผ่านจากโหนดใบไม้ตามโหนดบรรพบุรุษไปยังโหนดรากขึ้นไป
การจับภาพ: จากองค์ประกอบด้านบนของต้นไม้ DOM ไปจนถึงองค์ประกอบที่แม่นยำที่สุดตรงข้ามกับเหตุการณ์ฟองสบู่
โมเดลเหตุการณ์มาตรฐาน DOM: มาตรฐาน DOM รองรับทั้งเหตุการณ์ประเภทฟองและเหตุการณ์ประเภทการจับภาพ อาจกล่าวได้ว่าเป็นการรวมกันของทั้งสองครั้งแรกของทั้งหมดจับประเภทและจากนั้นส่งผ่านประเภทฟอง
2. วัตถุเหตุการณ์
ในเบราว์เซอร์ IE วัตถุเหตุการณ์เป็นคุณสมบัติของหน้าต่าง ในมาตรฐาน DOM เหตุการณ์จะต้องส่งผ่านไปยังฟังก์ชั่นการประมวลผลเหตุการณ์เป็นพารามิเตอร์ที่ไม่ซ้ำกัน
รับวัตถุเหตุการณ์ที่เข้ากันได้:
ฟังก์ชั่น (เหตุการณ์) {// เหตุการณ์เป็นฟังก์ชั่นการประมวลผลที่ส่งผ่านเป็นพารามิเตอร์ของเหตุการณ์มาตรฐาน DOM = เหตุการณ์? เหตุการณ์: window.event; -ใน IE วัตถุของเหตุการณ์มีอยู่ใน SRCELEMENT ของเหตุการณ์ในขณะที่อยู่ในมาตรฐาน DOM วัตถุนั้นมีอยู่ในคุณสมบัติเป้าหมาย
รับองค์ประกอบที่ชี้ไปที่วัตถุเหตุการณ์ที่เข้ากันได้:
var target = event.srcelement? Event.srcelement: Event.target;
หลักฐานคือเพื่อให้แน่ใจว่าวัตถุเหตุการณ์ได้รับอย่างถูกต้อง
3. ผู้ฟังเหตุการณ์
ภายใต้ IE ผู้ฟังที่ลงทะเบียนจะดำเนินการตามลำดับย้อนกลับนั่นคือผู้ฟังที่ลงทะเบียนจะถูกดำเนินการก่อน
Element.attachevent ('onclick', Observer); // register listener element.detachevent ('onclick', Observer) // ลบ Listenerพารามิเตอร์แรกคือชื่อเหตุการณ์และที่สองคือฟังก์ชันการประมวลผลการโทรกลับ
ภายใต้มาตรฐาน DOM:
element.addeventListener ('คลิก', ผู้สังเกตการณ์, usecapture) element.removeeVentListener ('คลิก', ผู้สังเกตการณ์, usecapture)พารามิเตอร์แรกคือชื่อเหตุการณ์โดยไม่มีคำนำหน้าของ "ON" พารามิเตอร์ที่สองคือฟังก์ชั่นการประมวลผลการเรียกกลับและพารามิเตอร์ที่สามระบุว่าฟังก์ชันการเรียกกลับถูกเรียกในขั้นตอนการจับภาพหรือในระยะฟอง ค่าเริ่มต้นจริงคือขั้นตอนการจับภาพ
4. การจัดส่งเหตุการณ์
ยกเลิกการจัดส่งเหตุการณ์ในเบราว์เซอร์ที่เข้ากันได้
ฟังก์ชั่น somehandler (เหตุการณ์) {event = event || window.event; if (event.stoppropagation) // dom standard event.stoppropagation (); else event.cancelBubble = true; // คือมาตรฐาน}ยกเลิกการประมวลผลเริ่มต้นหลังจากการส่งมอบเหตุการณ์
ฟังก์ชั่น somehandler (เหตุการณ์) {event = event || window.event; if (event.preventdefault) // เหตุการณ์มาตรฐาน DOM PreventDefault (); ELLE EVENT.RETURNVALUE = TRUE; // คือมาตรฐาน}ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม JavaScript ของทุกคน