ฉันพยายามที่จะเข้าใจความแตกต่างนี้โดยเฉพาะระหว่างโดยตรงและได้รับการแต่งตั้งจัดการเหตุการณ์โดยใช้jQuery .on ()วิธีการ ประโยคสุดท้ายในย่อหน้านี้โดยเฉพาะ:
เมื่อ
selector
มีให้จัดการเหตุการณ์จะเรียกว่าได้รับมอบหมาย ตัวจัดการจะไม่ถูกเรียกเมื่อเหตุการณ์เกิดขึ้นโดยตรงกับองค์ประกอบที่ถูกผูก แต่สำหรับลูกหลาน (องค์ประกอบภายใน) ที่ตรงกับตัวเลือก jQuery ทำให้ฟองเหตุการณ์จากเหตุการณ์เป้าหมายไปยังองค์ประกอบที่แนบตัวจัดการ (กล่าวคือภายในสุดถึงองค์ประกอบนอกสุด) และเรียกใช้ตัวจัดการสำหรับองค์ประกอบใด ๆ ตามเส้นทางนั้นที่ตรงกับตัวเลือก
การ "เรียกใช้ตัวจัดการสำหรับองค์ประกอบใด ๆ " หมายความว่าอย่างไร ฉันทำหน้าทดสอบเพื่อทดสอบด้วยแนวคิด แต่โครงสร้างทั้งสองต่อไปนี้นำไปสู่พฤติกรรมที่เหมือนกัน:
$("div#target span.green").on("click", function() {
alert($(this).attr("class") + " is clicked");
});
หรือ,
$("div#target").on("click", "span.green", function() {
alert($(this).attr("class") + " is clicked");
});
บางทีใครบางคนอาจอ้างถึงตัวอย่างที่แตกต่างเพื่อชี้แจงประเด็นนี้? ขอบคุณ