2012-04-03 69 views
8

我有兩個獨立的腳本,基本上做同樣的事情。我隨着時間的推移構建了它們,並發現我正在使用一些不同的方法來獲得相同的結果。什麼是執行jQuery .change()的最佳方法

我想在兩種情況下標準化和使用最佳實踐方法。我測試的改變事件

一種方法是這樣的:

$('input[name="status"]').change(function() {}); 

另一種方式我測試的改變事件是這樣的:

$("#email").bind("change", function(e) {}); 

哪種方法是最好的? 2的區別是什麼?

感謝您幫助我理解這一點。

回答

16

在jQuery 1.7之前,change()對於bind("change")simply a short cut

然而,從1.7開始,on()被引入,並且優於bind()。這意味着change()on("change")的快捷方式,實際上所有bind()調用現在將在內部調用on()

總之,他們做同樣的事情。我發現明確使用on()(或bind())更好,但只要您在整個代碼庫中保持一致,就不會看到任何實際差異。

有人會認爲使用change()超過on("change")是「更好」,如單詞「改變」一個錯字將在第一時間拋出一個語法錯誤(「未定義是不是一個函數」),但將與靜默失敗on() ...但顯然你的單元測試會捕捉到,對吧? )。

+0

明白了......謝謝@Matt! – 2012-04-03 14:46:21

+0

所以@Matt,我的代碼語法需要看起來像這樣:$(「#email」)。on(「change」,function(e){});'? – 2012-04-03 14:49:35

+1

@ Dr.DOT:是的..! – Matt 2012-04-03 14:50:49

相關問題