-1

我有下一个代码

$(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

4

1 回答 1

0

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

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

委托事件的优点是它们可以处理来自以后添加到文档的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序的需要,参考.

于 2013-09-19T17:04:02.320 回答