2013-10-03 49 views
0

下面是編寫事件處理程序的兩種不同的方式:jQuery的事件處理程序的差異

$('element').on("click",function(){ 
    // do stuff 
}); 

VS

$('element').click(function(){ 
    // do stuff 
}); 

什麼是兩者之間的主要區別?什麼情況會比另一種更適合?

+0

http://stackoverflow.com/questions/8018760/jquery-difference-between-點擊並點擊 – 0xcaff

+0

如果你使用第二個,jQuery內部使用第一個。這簡直就是速記。使用'on()'獲得更可靠的向前兼容性。 – Archer

+0

http://stackoverflow.com/questions/9122078/difference-between-onclick-vs-click – 0xcaff

回答

1

According to jQuery's API documentation

的。對()方法附加事件處理程序到當前選定集jQuery對象元件。從jQuery 1.7開始,.on()方法提供了附加事件處理程序所需的全部功能。有關從較舊的jQuery事件方法轉換的幫助,請參閱.bind(),.delegate()和.live()。要移除使用.on()綁定的事件,請參閱.off()。要附加僅運行一次然後自行刪除的事件,請參閱.one()

.on(...)函數利用所有其他事件綁定機制。它應該始終工作。 According to jQuery's API documentation

此方法是前兩種變體中的.on(「click」,處理程序)和第三種中的.trigger(「click」)的快捷方式。當鼠標指針位於元素上方並且鼠標按鈕被按下並釋放時,click事件被髮送到元素。任何HTML元素都可以接收此事件。例如,考慮HTML:

.click(...)是一個捷徑element.on("click", ...)

+0

@KevinB謝謝你的指出! – 0xcaff

+0

@KevinB修復它:D – 0xcaff

0

點擊()一個方便快捷的()。從上的區別,唯一的方法()是,如果你不帶任何參數調用它,它會調用:

$(element).trigger('click');