⊗jsPmDmLHU 362 of 505 menu

การยกเลิกการผูกตัวจัดการเหตุการณ์ในลูปด้วย JavaScript

ตอนนี้สมมติว่าเรามีไม่ใช่แค่หนึ่งองค์ประกอบ แต่มีหลายอัน ตัวอย่างเช่น หลายย่อหน้า:

<p>text1</p> <p>text2</p> <p>text3</p>

มาเพิ่มฟังก์ชัน func เป็นตัวจัดการเหตุการณ์คลิก ให้กับแต่ละย่อหน้าเหล่านี้กัน:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); }

มาแก้ไขโค้ดใหม่ เพื่อให้ แต่ละย่อหน้า ตอบสนองเฉพาะการคลิกครั้งแรก ของมันเท่านั้น ในการทำเช่นนี้ เมื่อคลิกที่ย่อหน้า เราจะยกเลิกการผูกตัวจัดการที่ผูกไว้กับมัน การยกเลิกการผูกนี้จะทำเฉพาะกับย่อหน้านี้ โดยไม่ส่งผลกระทบต่อย่อหน้าอื่นๆ

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

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); } function func() { console.log(this.textContent); this.removeEventListener('click', func); // ยกเลิกการผูกตัวจัดการ }

มีย่อหน้าให้ เมื่อคลิกที่ย่อหน้าใดๆ ให้เพิ่มเครื่องหมายอัศเจรีย์ที่ส่วนท้ายของมัน ทำให้การเพิ่มนี้เกิดขึ้น เฉพาะครั้งแรกที่คลิกเท่านั้น

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