Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图从附加的html触发事件onclick_Javascript_Jquery_Html_Append - Fatal编程技术网

Javascript 试图从附加的html触发事件onclick

Javascript 试图从附加的html触发事件onclick,javascript,jquery,html,append,Javascript,Jquery,Html,Append,我正在使用append将一些行添加到表中,追加的行有一列,其中包含需要触发单击事件的元素,追加: $.each(person, function(index, value){ $("#modal-table tbody").append( "<tr>" + "<td align='center'><span class='fa fa-minus-circle deleteLink' style='color:red; cursor:pointer

我正在使用append将一些行添加到表中,追加的行有一列,其中包含需要触发单击事件的元素,追加:

$.each(person, function(index, value){
     $("#modal-table tbody").append( "<tr>"
     + "<td align='center'><span class='fa fa-minus-circle deleteLink' style='color:red; cursor:pointer;'></span></td>"
     + "<td>"+ value.type+"</td>"
     + "<td>"+ value.hours+"</td>"
     + "<td><input placeholder='comments' class='form-control' type='text'/></td>"
     + "</tr>");
});
它应该删除单击图标上的行。

因为您的按钮是动态添加的,所以您必须对javascript添加的新DOM附加事件使用事件委派:

$('body').on('click', ".deleteLink", function() {
    //Your code here
})
希望这有帮助

var person=[{type:type 1,hours:01:00},{type:type 2,hours:02:00},{type:type 3,hours:03:00}]; $.eachperson,函数索引,值{ $modal table tbody.append + ++value.type+ ++value.h+ + + ; }; $'body'。单击时,.deleteLink,函数{ var tr=$this.最近的'tr'; tr.cssbackground-color,FF3700; tr.fadeOut400,功能{ tr.remove; }; 返回false; };
这不是一个更好的解决方案,而是一个变通办法 尝试放置此代码

    $(".deleteLink").on('click', function() {
        console.log(1);
        var tr = $(this).closest('tr');
        tr.css("background-color","#FF3700");
        tr.fadeOut(400, function(){
            tr.remove();
        });
        return false;
    });
在此代码之后立即:

    $.each(person, function(index, value){
    $("#modal-table tbody").append( "<tr>"
    + "<td align='center'><span class='fa fa-minus-circle deleteLink' style='color:red; cursor:pointer;'></span></td>"
    + "<td>"+ value.type+"</td>"
    + "<td>"+ value.hours+"</td>"
    + "<td><input placeholder='comments' class='form-control' type='text'/></td>"
    + "</tr>");
    });
现在,一旦用户界面用新行完全更新,您就可以设置单击事件。

您可以尝试以下操作:

$.each(person, function(index, value){
$("#modal-table tbody").append( "<tr>"
+ "<td align='center'><span onclick='executeFunction()' class='fa fa-minus-circle deleteLink'        style='color:red; cursor:pointer;'></span></td>"
+ "<td>"+ value.type+"</td>"
+ "<td>"+ value.hours+"</td>"
+ "<td><input placeholder='comments' class='form-control' type='text'/></td>"
+ "</tr>");
});



function  executeFunction(){
    console.log(1);
    var tr = $(this).closest('tr');
    tr.css("background-color","#FF3700");
    tr.fadeOut(400, function(){
    tr.remove();
});
return false;
} ;
$.each(person, function(index, value){
$("#modal-table tbody").append( "<tr>"
+ "<td align='center'><span onclick='executeFunction()' class='fa fa-minus-circle deleteLink'        style='color:red; cursor:pointer;'></span></td>"
+ "<td>"+ value.type+"</td>"
+ "<td>"+ value.hours+"</td>"
+ "<td><input placeholder='comments' class='form-control' type='text'/></td>"
+ "</tr>");
});



function  executeFunction(){
    console.log(1);
    var tr = $(this).closest('tr');
    tr.css("background-color","#FF3700");
    tr.fadeOut(400, function(){
    tr.remove();
});
return false;
} ;