1

、、<input>のようなIDを持つテーブルに要素を定義して作成しました...id="value0"id="value1"

for(var i=0; i<result.length; i++){
     $('#development_mapping tbody').append(
        '<tr><td>'+ result[i].visual_feature+'</td> \n\
           <td><input name="data-feature_x"  id="value'+i+'"/></td>\n\
         </tr>'
     );
 };

今、私はそれらのIDにアクセスしたいと思います。そして、ここに問題があります。このコードが機能しない理由がわかりません:

for(var i=0; i<result.length; i++){
    var tmp_index = '#value' +i; 
    $(tmp_index).keydown(function(e) { 
        if (e.keyCode === 13) {
            execute();
            console.log(tmp_index, " ok!");
        }
    });
}
4

4 に答える 4

1

ここでは、要素はページの読み込み後に作成されるため、イベントはそれらにバインドされません。動的に作成された要素にイベントをアタッチするには、.on()
関数を 使用します。

for(var i=0; i<result.length; i++){
   var tmp_index = '#value' +i; 
    jQuery("#development_mapping tbody").on("keydown",tmp_index,function(e) { 
                    if (e.keyCode === 13) {execute();
                    console.log(tmp_index, " ok!");}
    });
}
于 2013-10-24T08:51:45.827 に答える