2011-12-22 12 views
36

私はonメソッドが、live,delegateなどを置き換えることになっていることを知っています。しかし、現在clickイベントを使用している場所で使用することにはどのような点がありますか?たとえば、動的に生成されない要素など。jquery on vs clickメソッド

答えて

28

jQueryのソースに、それはとにかくon("event", fn)に(click()keyup()などのような)すべての「ショートカット」イベントハンドラを変換としては、特にclick()を交換する価値はありません。ドキュメントから

+2

: 'など添付したり、トリガイベントハンドラのに使用することができます.click()などの一部のイベントのための速記の方法があります。簡略法の完全なリストについては、eventsカテゴリ 'を参照してください。だから、@Roryが私が思うと言っているように、答えはいいえではありません。 –

+9

前に '.click()'の代わりに '.bind("をクリック)しなかったのと同じように、 '.click() 'の代わりに'。on 「今、 –

+1

ただし、ショートカットのメソッド.click()は.on()を呼び出して、ルートレベルでイベントハンドラをアタッチし、バブリングフェーズは要素からルートまでのすべての構造をトラバースします。 .on()を直接使用すると、クリックイベントリスナーを直近の親ノードにアタッチすることができます。これにより、バブリングフェーズが短縮されますが、クリックイベントの場合、非常に小さな改良になると思います。 – Samuel