在javascript中加载代码的顺序

在javascript中加载代码的顺序,javascript,jquery,events,row,Javascript,Jquery,Events,Row,我有下一个密码 $(document).ready(function () { $("a").on('click',function() { console.log("foo"); }); 这段代码,从数据库中生成一行,并将数据放在tbody上 $.getJSON('file.php', function(data) { $.each(data, function (index) { $('#my_table > tb

我有下一个密码

$(document).ready(function () 
{
    $("a").on('click',function()
    {
      console.log("foo");
    });
这段代码,从数据库中生成一行,并将数据放在tbody上

$.getJSON('file.php', function(data) {
    $.each(data, function (index) {
            $('#my_table > tbody').append(''
                        +"<tr id= "+data[index].id_marca_c+">"
                         +"<td>"
                           +"<a href='#'><i class='icon-pencil'></i></a> "
                         +'</td>'
                        +'</tr>');
        });
$.getJSON('file.php',函数(数据){
$。每个(数据、函数(索引){
$('#my_table>tbody')。追加(''
+""
+""
+" "
+''
+'');
});
但在函数中,单击链接在为javascript生成的表中不起作用,而是在html代码中起作用

例如:

<html>
 <!-- /code -->
  <a href='#'><i class='icon-pencil'></i></a>  <!-- /this-works -->
</html>

但是在为javascript生成的表中,该函数不起作用。 我修改了生成的代码,没问题

编辑:
javascript代码

您需要使用委派事件来绑定事件与绑定时不存在且动态添加的元素。您可以将事件委派给动态添加元素或文档的父级

$("#my_table").on('click',"a" ,function()
{
  console.log("foo");
});
委派事件的优点是,它们可以从中处理事件 以后添加到文档中的子元素。通过 选择一个元素,该元素保证在 已附加委派事件处理程序,您可以使用委派事件 避免频繁附加和删除事件处理程序


@Rogue Click事件不会添加到动态创建的元素中。如果它是
$(“#my_table>tbody”)会更好。在('Click',“a”,…
上,您的答案
$(文档).
将应用于整个页面上的每个链接。