0

これは、表の行を追加するために使用するコードです。ここで、personTabs は iframe 名です

$(".addClass1").on('click',function() {
           parent.parent.parent.personTabs.$("#skilltableId").append(                        
                  '<tr id="skilltableId1"><td class="btnRemoving">'+$("#selecetedValue").val()+'</td><td class="editing">'+$("#type").val()+'</td><td style="display:none">'+$("#commonDbid").val()+'</td></tr><br>'                    
        );  

td class='editing' をクリックすると、次のようにテキスト ボックスが生成されます。

 parent.parent.parent.personTabs.$(".editing").on('click',function() {
                    var data = $(this).text();
                     $(this).html("<input type='text' id='focus123' value='"+data+"'/>").children().focus();
                      });

私は初めてすべてをうまく取得しています..テーブル行は正常に追加されています.2回目に同じ追加を行うと、テーブル行が生成されます.onclickは最後に生成された行に対してのみ機能します..前のものではありません..なぜそうなのか..ここにいる人なら誰でも電話できます..私はライブのデリゲートメソッドを試しました..しかし、どれもうまくいきませんでした..私はjquery-1.9.1.jsを使用しています

4

1 に答える 1

1

問題の 1 つは、同じ ID でテキスト ボックスを作成したことだと思います。なぜparent.parent.parent...を使用したのかわかりません...

 $(".addClass1").on('click',function() {
           $("#skilltableId").append(                        
                  '<tr id="skilltableId1"><td class="btnRemoving">'+$("#selecetedValue").val()+'</td><td class="editing">'+$("#type").val()+'</td><td style="display:none">'+$("#commonDbid").val()+'</td></tr><br>'                    
        ); 

$(".editing").on('click',function() {
                var data = $(this).text();
                 $(this).html("<input type='text' class='focus123' value='"+data+"'/>").children().focus();
                  });

うまくいくかどうかはわかりませんが、このjavascript関数を使用することもできます

$(".addClass1").on('click', function () {
    $("#skilltableId").append('<tr id="skilltableId1"><td class="btnRemoving">' + $("#selecetedValue").val() + '</td><td class="editing" on click="myfunction(this)">' + $("#type").val() + '</td><td style="display:none">' + $("#commonDbid").val() + '</td></tr><br>');

    function myfunction(selectedTd) {
        var data = $(selectedTd).text();
        $(selectedTd).html("<input type='text' class='focus123' value='" + data + "'/>").children().focus();

    }
});
于 2013-07-03T16:35:40.903 に答える