2016-06-09 69 views

回答

1

反正罩下呼叫change()最後調用trigger('change')。但是,對於觸發器,您可以限制對該事件的名稱空間事件處理程序的調用(例如trigger('change.myplugin')),所以我更喜歡每次都使用觸發器。

2

他們是恰好一樣。 change() - 以及所有其他速記事件方法 - 在內部使用trigger('change')source)。

在這種特定情況下,選擇一個優先於另一個的唯一原因是您對語義的偏好。

+0

它們並不完全相同。 change()有一個額外的代碼,最終調用trigger(「change」)。 –

+0

@EmrahIzci ......那就是這樣。如果你擔心通過三元表達式運行邏輯幾毫秒的延遲,那麼你可能不應該使用jQuery。 –

+0

正如你所說的,他們在性能方面有不同的級別差異,這並不會使它們「完全相同」。但是,是的,我正在撞擊原子,所以毫秒正在使我否認它們完全一樣。 –

1

它們具有相同的功能,但不完全相同。因此,這裏是變化()的源代碼:

function (a,c){ 
     c==null&&(c=a,a=null); 
     return arguments.length>0?this.on(b,null,a,c):this.trigger(b); 
} 

所以改變()有它調用觸發作爲它的一個結果(「變化」)條件語句。因此,觸發器('更改')的工作速度稍快。