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();
                      });

我第一次一切都很好..表格行被很好地附加了..当我第二次执行相同的附加时,生成了表格行。onclick 仅适用于最后生成的行..但不是前一个..为什么会这样..这里的任何人都可以给我打电话,..我尝试了现场,委托方法..但没有奏效..我正在使用 jquery-1.9.1.js

4

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 回答