เมื่อใช้ jQuery เพื่อเชื่อมต่อกับตัวจัดการเหตุการณ์มีความแตกต่างระหว่างการใช้วิธีการคลิกหรือไม่
$().click(fn)
เทียบกับการใช้วิธีการผูก
$().bind('click',fn);
นอกเหนือจากพารามิเตอร์ข้อมูลทางเลือกของ bind
เมื่อใช้ jQuery เพื่อเชื่อมต่อกับตัวจัดการเหตุการณ์มีความแตกต่างระหว่างการใช้วิธีการคลิกหรือไม่
$().click(fn)
เทียบกับการใช้วิธีการผูก
$().bind('click',fn);
นอกเหนือจากพารามิเตอร์ข้อมูลทางเลือกของ bind
คำตอบ:
สิ่งที่คุ้มค่าจากแหล่ง jQuery :
jQuery.each( ("blur,focus,load,resize,scroll,unload,click,dblclick," +
"mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave," +
"change,select,submit,keydown,keypress,keyup,error").split(","), function(i, name){
// Handle event binding
jQuery.fn[name] = function(fn){
return fn ? this.bind(name, fn) : this.trigger(name);
};
});
ไม่เลยไม่มีความแตกต่าง -
$().click(fn)
โทร
$().bind('click',fn)
click()
โดยทั่วไปเป็นชวเลขสำหรับbind('click')
(หรือในสมัยนี้มันเรียกกันจริงon('click')
ๆ วิธีที่ฉันเห็นคุณอาจช่วยตัวเองด้วยการเรียกฟังก์ชันพิเศษโดยใช้on('click')
โดยตรง
+1 สำหรับคำตอบของ Matthew แต่ฉันคิดว่าฉันควรพูดถึงว่าคุณสามารถผูกตัวจัดการเหตุการณ์มากกว่าหนึ่งตัวได้ในครั้งเดียวโดยใช้ bind
$('#myDiv').bind('mouseover focus', function() {
$(this).addClass('focus')
});
ซึ่งสะอาดกว่ามากเทียบเท่ากับ:
var myFunc = function() {
$(this).addClass('focus');
};
$('#myDiv')
.mouseover(myFunc)
.focus(myFunc)
;
มีความแตกต่างอย่างหนึ่งที่คุณสามารถเชื่อมโยงเหตุการณ์ที่กำหนดเองโดยใช้รูปแบบที่สองที่คุณมี มิฉะนั้นดูเหมือนจะตรงกัน ดู: jQuery Event Docs
มีพารามิเตอร์ [data] ของการโยงซึ่งจะเกิดขึ้นเฉพาะเวลาผูกครั้งเดียว
คุณยังสามารถระบุเหตุการณ์ที่กำหนดเองเป็นพารามิเตอร์แรกของการโยง
ฉันพบว่า. click () เป็นวิธีที่สมเหตุสมผลกว่า แต่ฉันเดาว่าคุณคิดอย่างไร
$('#my_button').click(function() { alert('BOOM!'); });
ดูเหมือนจะเป็นเรื่องง่ายๆอย่างที่คุณได้รับ
หากคุณมี Google Chrome เครื่องมือสำหรับนักพัฒนาของพวกเขามีเครื่องมือตัวฟังเหตุการณ์ให้เลือกองค์ประกอบที่คุณต้องการสอดแนมเหตุการณ์
คุณจะพบว่าการลองทั้งสองวิธีนำไปสู่ผลลัพธ์เดียวกันดังนั้นจึงเทียบเท่ากัน
ฉันชอบ.bind ()เพราะสอดคล้องกับอินเตอร์เฟซที่.live () ไม่เพียง แต่ทำให้โค้ดอ่านง่ายขึ้น แต่ยังช่วยให้เปลี่ยนบรรทัดของโค้ดเพื่อใช้วิธีการหนึ่งแทนวิธีอื่นได้ง่ายขึ้น