เหตุการณ์ใน JS เป็นเดือดปุดโดยค่าเริ่มต้นและเป็นเลเยอร์ที่แพร่กระจายโดยเลเยอร์ คุณสามารถหยุดการแพร่กระจายของเหตุการณ์ในระดับ DOM ผ่านฟังก์ชั่น stoppropagation () ดังในตัวอย่างต่อไปนี้:
รหัส HTML:
<! doctype html> <html> <head> <meta charset = "utf-8"/> <title> stoppropagation ()-ใช้โดยบล็อก qiongtai </title> </head> <body> <button> ปุ่ม </butdle> </body> </html> [/code] document.getElementByTagname ('ปุ่ม') [0]; button.onclick = function (เหตุการณ์) {Alert ('ปุ่มคลิก');}; document.body.onclick = ฟังก์ชั่น (เหตุการณ์) {แจ้งเตือน ('ร่างกายคลิก');}DOM แพร่กระจายเลเยอร์โดยเลเยอร์ดังนั้นการคลิกที่ปุ่มยังกระจายไปยังชั้นร่างกายดังนั้นการคลิกของชั้นร่างกายจึงตอบสนอง เป็นผลให้กล่องคำเตือนสองกล่องปรากฏขึ้นคือปุ่มและร่างกาย
เพิ่ม stoppropagation ()
ปุ่ม var = document.getElementByTagname ('ปุ่ม') [0]; button.onclick = function (เหตุการณ์) {การแจ้งเตือน ('ปุ่มคลิก'); // หยุดเหตุการณ์การแพร่กระจายลำดับชั้นของเหตุการณ์ DOM.STOPPROPAGATION ();}; document.body.onclick = ฟังก์ชั่น (เหตุการณ์) {แจ้งเตือน ('ร่างกายคลิก');}ฟังก์ชั่น stoppropagation () ใช้ในฟังก์ชั่นการจัดการเหตุการณ์คลิกของปุ่มเพื่อหยุดฟังก์ชั่นการแพร่กระจายเหตุการณ์ดังนั้นหลังจากกล่องเตือนจากเหตุการณ์การคลิกปุ่มปรากฏขึ้นร่างกายจะไม่สามารถเผยแพร่ได้และกล่องเตือนของร่างกายจะไม่ปรากฏขึ้นอีกครั้ง เป็นผลให้กล่องคำเตือนถูกกล่าวถึงเพียงครั้งเดียว
เมื่อเขียน JS รองเท้าเด็กหลายคนมักจะเพิกเฉยต่อลักษณะของเหตุการณ์ DOM ที่แพร่กระจายเลเยอร์โดยเลเยอร์ทำให้เกิดความผิดปกติในโปรแกรม หากคุณต้องการทราบความรู้เชิงลึกเพิ่มเติมคุณสามารถค้นหาข้อมูลเกี่ยวกับเหตุการณ์เดือดดาลของ JS