0

まず第一に、私の英語で申し訳ありません、私はまだ学んでいます:)。

私の問題は次のとおりです.jQueryを使用してHTMLコンテンツを動的に追加しました。具体的には次のinputsとおりです。

<td id="date"><input type="text" id="input_1" class="select" /></td>
<td id="date"><input type="text" id="input_2" class="select" /></td>
<td id="date"><input type="text" id="input_3" class="select" /></td>
<td id="date"><input type="text" id="input_4" class="select" /></td>
<td id="date"><input type="text" id="input_X" class="select" /></td>

入力の数は、DB にあるレジスタの数によって異なります。

一方、同じコンテンツで使用した jQuery にこのコードがありますが、動的に追加されませんでした。上記のコンテンツを追加した後、このスクリプトを実行しようとしました:

$('input')
    .filter(function() {
    return this.id.match(/input_./);
})
.foo({
    ....
});

同じスクリプトを動的コンテンツに適用しようとすると、機能しません。何にも一致しません。

delegate()andメソッドについて読みlive()ましたが、私が見たすべての例はハンドラーイベント用だったので、自分の状況でそれらをどのように使用できるかわかりませんでした。

この問題をどのように解決できるかは誰でも知っています。

前もって感謝します。

4

1 に答える 1

0
$(document).on('change', 'input[id^=input_]', function() {
    /* Do stuff */
});

したがって、このデモのようなことができます

// Wrap inside a document ready
// Read .on() docs (To ensure the elements...bla bla)
$(document).ready( function () {

    input_index = 0;

    setInterval(addInput, 1000);

    $(document).on('change', 'input[id^=input_]', function() {
        $(this).val($(this).attr('id'));
    });

    function addInput () { 
        $('<input type="text" id="input_'+input_index+'"/>')
          .appendTo('#empty')
          .change();   // <============================ Pay attention to this
        input_index++;
    }

});
于 2013-08-12T09:47:48.910 に答える