⊗jsPmOEED 431 of 505 menu

Event delegation in JavaScript

ในบทเรียนที่แล้ว ได้อธิบายถึงปัญหาที่เกิดขึ้นเมื่อเพิ่มองค์ประกอบใหม่และได้ให้วิธีแก้ไขไว้ ในบทเรียนนี้ เราจะมาดูวิธีที่ดีกว่าในการแก้ไขปัญหานี้ - การมอบหมายเหตุการณ์ มาวิเคราะห์กัน

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

list.addEventListener('click', function() { });

ตอนนี้ในตัวจัดการเหตุการณ์ this จะชี้ไปยังองค์ประกอบที่ตัวจัดการถูกติดตั้งไว้ และ event.target จะชี้ไปยังองค์ประกอบที่เหตุการณ์เกิดขึ้น:

list.addEventListener('click', function(event) { console.log(this); // list ของเรา console.log(event.target); // รายการ list ของเรา });

มาทำให้เครื่องหมายอัศเจรีย์ถูกเพิ่มที่ส่วนท้ายของ li ที่มีการคลิกเกิดขึ้น:

list.addEventListener('click', function(event) { event.target.textContent = event.target.textContent + '!'; });

ทำซ้ำวิธีแก้ไขข้างต้น ให้แน่ใจว่า li ใหม่จะตอบสนองต่อการคลิกด้วย

ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ