jQuery ≥ 1.7
กับ jQuery 1.7 เป็นต้นไปเหตุการณ์ API ที่ได้รับการปรับปรุง.bind()
/ .unbind()
ยังคงมีอยู่สำหรับการทำงานร่วมกันหลัง แต่วิธีการที่ต้องการคือการใช้ใน () / ปิด ()ฟังก์ชั่น ด้านล่างจะเป็น
$('#myimage').click(function() { return false; }); // Adds another click event
$('#myimage').off('click');
$('#myimage').on('click.mynamespace', function() { /* Do stuff */ });
$('#myimage').off('click.mynamespace');
jQuery <1.7
ในโค้ดตัวอย่างของคุณคุณเพียงแค่เพิ่มเหตุการณ์การคลิกอีกครั้งลงในภาพไม่ใช่การแทนที่เหตุการณ์ก่อนหน้า:
$('#myimage').click(function() { return false; }); // Adds another click event
เหตุการณ์การคลิกทั้งสองจะถูกไล่ออก
อย่างที่คนอื่นพูดไว้คุณสามารถใช้ unbind เพื่อลบกิจกรรมคลิกทั้งหมด:
$('#myimage').unbind('click');
หากคุณต้องการเพิ่มเหตุการณ์เดียวแล้วลบออก (โดยไม่ลบกิจกรรมอื่น ๆ ที่อาจถูกเพิ่ม) จากนั้นคุณสามารถใช้การกำหนดเนมสเปซได้:
$('#myimage').bind('click.mynamespace', function() { /* Do stuff */ });
และเพื่อลบเฉพาะกิจกรรมของคุณ:
$('#myimage').unbind('click.mynamespace');
unbind()
ทำงานหรือไม่ ฉันได้เพิ่มแล้วและทั้งสองเหตุการณ์ยังคงมีการยิง