jQuery on()
メソッドのselector
の目的は何ですか?どのような状況ではjQuery on()セレクタ
は、
$("#fish").find(".button").on("click", function() {
// something
});
$("#fish").on("click", ".button", function() {
// something
});
たとえば、より良いですか?
私はjQuery documentionに見て、見つけた:
セレクタを省略するかnullであるされている場合は、イベントハンドラは、直接または直接バウンドと呼ばれています。このハンドラは、選択された要素でイベントが発生するたびに呼び出されます。要素に直接発生するか、子孫(内部)要素から発生するかに関係なく発生します。
セレクタが提供される場合、イベントハンドラは委任されたと呼ばれます。バインドされた要素でイベントが直接発生したときにハンドラが呼び出されるのではなく、セレクタに一致する子孫(内部要素)に対してのみハンドラが呼び出されます。 jQueryはイベントをイベントターゲットからハンドラがアタッチされている要素(つまり最も内側の要素から最も外側の要素)までバブリングし、セレクタに一致するそのパスに沿った任意の要素のハンドラを実行します。私が言ってで修正
アムは違いが私の最初の例では、イベントが#fish
にバインドされていることであるが、2番目の例ではイベントがバインドされているのに対してのみ、.buttons
からバブルアップイベントをリッスンしていることそれぞれ.buttons
?もしそうなら、これの意味は何ですか? :S
イベントが#fishにバインドされている場合、.buttonをクリックすると、クリックされた.buttonを知ることができますか?これは.buttonよりむしろ#fishを参照します。正しい?
最初の例は、イベントがバインドされたとき、または将来、存在する '#fish'内の' .button'要素に対して機能します。 2番目の例では、バインド時に '#fish'内の' .button'要素に対してのみ関数を実行します。 – BenM