⊗jsPmOEBUs 428 of 505 menu

การใช้งานการหยุดการแพร่กระจายของเหตุการณ์ใน JavaScript

สมมติว่าภายใน parent หนึ่ง เรามีปุ่ม และบล็อกบางส่วน:

<div id="parent"> <button>click me</button> <div id="block"> text </div> </div>

รับลิงก์ไปยังองค์ประกอบของเราในตัวแปร:

let parent = document.querySelector('#parent'); let button = document.querySelector('button'); let block = document.querySelector('#block');

ให้บล็อกของเราซ่อนอยู่ตั้งแต่เริ่ม:

#block:not(.active) { display: none; }

ทำให้เมื่อคลิกที่ปุ่ม บล็อกของเราแสดงขึ้นมา:

button.addEventListener('click', function() { block.classList.add('active'); });

และตอนนี้ทำให้เมื่อคลิกที่ใดก็ได้ บน parent บล็อกของเราจะซ่อน:

parent.addEventListener('click', function() { block.classList.remove('active'); });

อย่างไรก็ตาม เรากำลังรอเซอร์ไพรส์ที่ไม่คาดคิด: เนื่องจาก ปุ่มอยู่ภายใน parent ดังนั้น การคลิกที่ปุ่มจึงหมายถึงการคลิก ที่ parent ด้วย นี่หมายความว่าตอนแรก บล็อกของเราจะแสดง จากนั้นเนื่องจากการแพร่กระจาย ของเหตุการณ์ ตัวจัดการใน parent จะทำงานและ บล็อกของเราจะซ่อน

นี่คือจุดที่ความสามารถในการยกเลิกการแพร่กระจายจะมีประโยชน์สำหรับเรา: เราสามารถทำให้เมื่อ คลิกที่ปุ่มให้ยกเลิกการแพร่กระจาย parent จะไม่ตอบสนองต่อการคลิกนี้

ดำเนินการทำงานที่ถูกต้องของ งานที่อธิบายไว้โดยอิสระ

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ