4
เหตุการณ์ jQuery ทั้งหมดควรผูกติดกับ $ (เอกสาร) หรือไม่
สิ่งนี้มาจากไหน เมื่อฉันเรียนรู้ jQuery ครั้งแรกปกติฉันจะแนบกิจกรรมดังนี้ $('.my-widget a').click(function() { $(this).toggleClass('active'); }); หลังจากเรียนรู้เพิ่มเติมเกี่ยวกับความเร็วของตัวเลือกและการมอบหมายเหตุการณ์ฉันอ่านในหลาย ๆ ที่ที่ "การมอบหมายเหตุการณ์ jQuery จะทำให้โค้ดของคุณเร็วขึ้น" ดังนั้นฉันจึงเริ่มเขียนโค้ดแบบนี้: $('.my-widget').on('click','a',function() { $(this).toggleClass('active'); }); นี่เป็นวิธีที่แนะนำในการทำซ้ำพฤติกรรมของกิจกรรม. live () ที่เลิกใช้แล้ว ซึ่งเป็นสิ่งสำคัญสำหรับฉันเนื่องจากมีไซต์ของฉันเพิ่ม / ลบวิดเจ็ตอยู่ตลอดเวลา ข้างต้นไม่ได้ทำงานเหมือนกับ. live () เนื่องจากองค์ประกอบเท่านั้นที่ถูกเพิ่มลงในคอนเทนเนอร์ที่มีอยู่แล้ว '.my-widget' จะได้รับพฤติกรรม หากฉันเพิ่มบล็อก html แบบไดนามิกอีกครั้งหลังจากที่โค้ดนั้นรันองค์ประกอบเหล่านั้นจะไม่ทำให้เกิดเหตุการณ์ที่เกี่ยวข้อง แบบนี้: setTimeout(function() { $('body').append('<div class="my-widget"><a>Click does nothing</a></div>'); }, 1000); สิ่งที่ฉันต้องการบรรลุ: พฤติกรรมเก่าของ. live () // …