ฉันพบปัญหาของเหตุการณ์เดือดปุด ๆ มาก่อนดังนั้นฉันจึงค้นหาอินเทอร์เน็ตและส่วนใหญ่เป็นรหัสเดียวกันและมันก็ไม่ราบรื่นมากที่จะใช้มัน เมื่อพูดถึง FF คุณสามารถใช้ e.stoppropagation (); และอย่างใดฉันก็ไม่ประสบความสำเร็จ อย่างไรก็ตามฉันพบว่า FF สนับสนุนวิธีการเขียนของ E.CancelBubble = TRUE; ซึ่งเป็นไปได้หลังจากการทดสอบ เพียงโพสต์รหัสที่นี่เพื่อให้คุณสามารถหลีกเลี่ยงการค้นหาทุกที่ในอนาคต ความเข้ากันได้ของรุ่นก่อนหน้านี้ยังไม่ได้รับการทดสอบดังนั้นฉันจะปรับปรุงเมื่อฉันใช้มัน
การคัดลอกรหัสมีดังนี้:
// ยกเลิกฟองเหตุการณ์
ฟังก์ชั่นหยุดบ่ม (e) {
var evt = (e)? E: window.event; // เข้ากันได้กับ ff
evt.CancelBubble = true; //evt.stoppropagation (); เพื่อป้องกันฟองอากาศภายใต้ FF มีการกล่าวกันว่ามีประโยชน์
-
อื่น:
1. CancelBubble (คุณสมบัติวัตถุเหตุการณ์ HTML DOM): หากการจัดการเหตุการณ์ต้องการป้องกันไม่ให้เหตุการณ์เผยแพร่ไปยังวัตถุรวมคุณสมบัติจะต้องตั้งค่าเป็น TRUE
2. stoppropagation (HTML DOM Event Object Method): เหตุการณ์การสิ้นสุดจะถูกเผยแพร่เพิ่มเติมในระหว่างการจับภาพการประมวลผลเป้าหมายหรือขั้นตอนฟองของกระบวนการแพร่กระจาย หลังจากเรียกใช้วิธีนี้ตัวจัดการบนโหนดที่จัดการเหตุการณ์จะถูกเรียกและเหตุการณ์จะไม่ถูกส่งไปยังโหนดอื่นอีกต่อไป
3. PreventDefault (HTML DOM Event Object Method) แจ้งให้เบราว์เซอร์ไม่ดำเนินการเริ่มต้นที่เกี่ยวข้องกับเหตุการณ์
ตัวอย่าง:
ฟังก์ชั่นหยุดพัก (E)
-
ถ้า (E && E.STOPPROPAGATION)
E.StopPropagation ()
อื่น
window.event.cancelBubble = true
-
ใส่ฟังก์ชั่น shotbubble (e) ลงในฟังก์ชั่นที่คุณต้องการป้องกันเหตุการณ์จากฟองสบู่