12

Ajax を使用してフォームをロードしている Jquery Mobile シェル ページがあります。フォームには、バインドする必要があるチェックボックスがいくつかあります。

奇妙なことに、次のようにリスナーをボタンに直接設定して動作させることができます。

$('input[name="ohneiln"]').on('change', function() {
   alert("hello");
   });

$(document)しかし、リスナーをに設定してデリゲートしようとするとcheckbox、リスナーは起動しません。

$(document).on('change', 'input[name="ohneiln"]', function() {
   alert("hello");
});

質問:
を使用して Ajax 経由で読み込まれる「動的」要素のイベント バインディングを設定する正しい方法は何$(document).on()ですか? これはイベントでは不可能ですchangeか、それともなぜ問題が発生するのですか?

手伝ってくれてありがとう!

4

1 に答える 1

11

使い方.on()によってやり方が変わります。最初の例では、.on()メソッドは同様に動作しbind、既に存在する要素に対してのみ機能します。

2 番目の例は、.live()またはdelegate()多くの方法で動作します。また、後で追加される要素に対しても機能します。

詳細な説明については、ドキュメントを参照してください http://api.jquery.com/on/

于 2012-06-02T18:32:31.367 に答える