表格单元格内 span 或 td 的单击事件处理程序不起作用

Cal*_*pso 3 javascript jquery click event-handling

加载页面时我正在填充表格。我的行创建如下:

        $.each(datax, function() {
            $.each(this, function(kx , vx) {

                    tbl_row += '<td><p id="' +'^'+$key1+':'+$keyval1 +'^'+$key2+':'+$keyval2 +'^'+$key3+':'+$keyval3 +'^'+$key4+':'+$keyval4 +'^'+$key5+':'+$keyval5+ '$$'+kx+':'+vx+ '">'+vx+'</p></td>'; 
                    tbl_labels += "<th>"+kx+"</th>";
                })
                tbl_body += "<tr>"+tbl_row+"</tr>";   
                tbl_head  = "<tr>"+tbl_labels+"</tr>";                  
            })

            $("#table_results thead").html(tbl_head); 
            $("#table_results tbody").html(tbl_body); 
            $("#table_results").table("refresh");   
Run Code Online (Sandbox Code Playgroud)

到目前为止一切正常。问题是,我想处理表格单元格的单击事件。我尝试将 span 和 p 放入单元格内,但以下处理程序不起作用

$("p").click(function (){
alert('handler for click p worked');
});

$("span").click(function (){
alert('handler for click span worked');
});
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Luc*_*ems 5

试试这个代码:

$(document).on('click', 'p', function (){
    alert('handler for click p worked');
});

$(document).on('click', 'span', function (){
    alert('handler for click span worked');
});
Run Code Online (Sandbox Code Playgroud)

它使用on 方法来检测动态创建的元素上的事件。