2012-04-03 6 views
8

私は本質的に同じことをする2つの別々のスクリプトを持っています。私は時間をかけてそれらを作り、ちょうど私が同じ結果に得るためにいくつかの異なる手段を使用していることを発見しました。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())を明示的に使用することをお勧めしますが、コードベース全体で一貫している限り、実際の違いはありません。

on("change")を超えるとchange()を使用すると、「変更」という単語のタイプミスが最初のインスタンス(「未定義は関数ではありません」)でスローされますが、 on() ...しかし明らかにあなたのユニットテストはそれを捕まえるだろうか? ;)。

+0

ありがとう@Matt! –

+0

@Mattだから、私のコードの構文はこの '$("#email ")のようにする必要がありますon(" change "、function(e){});'? –

+1

@ Dr.DOT:そうです! – Matt