为了在JavaScript中加载代码

时间:2013-09-19 17:02:22

标签: 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 > tbody').append(''
                        +"<tr id= "+data[index].id_marca_c+">"
                         +"<td>"
                           +"<a href='#'><i class='icon-pencil'></i></a> "
                         +'</td>'
                        +'</tr>');
        });

但在函数中点击链接不适用于为javascript生成的表格,但如果是在html代码中。

示例:

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

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

编辑: javascript代码http://pastebin.com/2GZ4J28Q

1 个答案:

答案 0 :(得分:0)

您需要使用委托事件来绑定具有绑定时不存在且动态添加的元素的事件。您可以将事件委托给动态添加元素或docuemnt的父级。

$("#my_table").on('click',"a" ,function()
{
  console.log("foo");
});
  

委派事件的优势在于它们可以处理来自的事件   稍后添加到文档中的后代元素。通过   选择一个保证在当时存在的元素   委托事件处理程序附加,您可以使用委托事件   避免频繁附加和删除事件处理程序reference