14

このタイトルを読んで眉をひそめた方もいらっしゃるのではないでしょうか?人々は毎回これを尋ねると確信していますが、私は私の特定の質問を見たことがないので、試しています! イベントを動的に作成された要素にバインドすることは私のクリプトナイトです。頭を包むことはできません...

わかりました、私はプラグインでTwitter Boostrapを使用していtypehead()ます。このトリックを使用して、リモートのデータ ソースを操作します。この時点で、すべてが機能します。タグ付けされたフォームのテキスト入力をクリックすると、スクリプトが外部ソースをロードし、ドロップダウンが表示されます。しかし、私は動的な要素の作成を行っています。メソッドをlive()調べていましたが、スクリプトが「どのように」起動されるかを見て、どのように実装できるかわかりません。

$('#anInputField').typeahead().on('keyup', function(ev){
 // stuff happens
});

キーアップがあるたびに、スクリプトは JSON リクエストを起動し、彼のものをチェックしtypehead()、ジョブのオートコンプリート部分を実行する人に結果を返します。では、最初のバインド後に作成された #aDropdownID を確認するように jQuery に指示するにはどうすればよいでしょうか? 私は続けて、使用できるかどうかを確認しましlive()たが、それon()を置き換えるので...私は無知です!

どんな助けでも大歓迎です!

4

2 に答える 2

45

on()委任できるようにするには、常に存在することがわかっている静的要素でそれを呼び出す必要があります。次に、次のように動的要素を渡します。

$('#static-parent').on('keyup', '#aDropdownID', function(ev){
 // stuff happens
});

静的な親要素がない場合は、いつでもを使用できますbody

于 2012-03-18T21:03:24.820 に答える
13

これは私のために働く:

$(document).on('keyup', '#YourInputFieldId', function () {
    //stuff happens
});
于 2013-11-12T16:52:42.840 に答える