2

例私は2つのhtml入力を持っていました

<div class="wrap">        
   <input class="autocomplete" name="auto_1" />
   <input class="autocomplete" name="auto_2" />
</div>

およびはjQueryUIによるオートコンプリートを使用しており、ドキュメントの準備ができたときにトリガーされauto_1ますauto_2$(function(){})

そして、私のWebサイトのボタンをクリックすると、もう1つのボタンが表示されます。関数によって追加されました$('.wrap').append('<input class="autocomplete" name="auto_3" />')

そして今、合計で3つの入力があります

<div class="wrap">        
   <input class="autocomplete" name="auto_1" />
   <input class="autocomplete" name="auto_2" />
   <input class="autocomplete" name="auto_3" />
</div>

ただし、オートコンプリート機能はauto_3新しく追加されたため、実行されていません。

実行/オートコンプリートを使用するにはどうすればよいですか?

4

2 に答える 2

2

問題は新しい入力のクリックではなく、新しい入力のオートコンプリートにあると思います。で新しい要素を追加すると

$('.wrap').append('<input class="autocomplete" name="auto_3" />')

この新しいフィールドにオートコンプリートを添付する必要があるため、

$('input[name="auto_3"]').autocomplete();

または livequery プラグインでオートコンプリートを作成します: https://stackoverflow.com/a/4551313/657584

于 2012-05-20T21:09:36.183 に答える
1

使用.on(): http://api.jquery.com/on

$('.wrap').on('click', '.autocomplete', function(){
    // your code here
    // $(this).autocomplete(); // or whatever.
});

メソッドを使用し.on()て、DOM に追加される既存の要素と将来の要素にクリック ハンドラーを委譲します。.live()

ドキュメントから:

$("a.offsite").live("click", function(){ alert("Goodbye!"); });   // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); });  // jQuery 1.4.3+
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+
于 2012-05-20T21:04:55.980 に答える