jQuery动态创建不响应事件的表行

时间:2009-08-26 10:38:44

标签: jquery html

我的HTML文件中有一行表。现在在jQuery中,我根据数据库中的数据附加了很多行。但动态创建的锚标记不响应 参加活动。如何使此锚标记响应事件?

jQuery部分

//从数据库中追加行

$('<tr> <td> </td> <td id="log'+i+'"><a href="viewlog.php" target="_blank">log</a></td></tr> ').appendTo('#container');

jQuery中的事件部分  现在,当我写这样一行代码时,它没有响应

$('#container a ').click(function()
{

    alert("Coming here ");
});

// HTML

<html>
    <table id="container">
        <tr>
            <td>
                Name
            </td>
            <td>
                Link
            </td>
        </tr>
    </table>
</html>

2 个答案:

答案 0 :(得分:4)

如果您在开头分配click事件,之后创建的元素将无法获取它。请尝试:

$("#container a").live("click", function(){
  ...
});

以这种方式每次创建链接时,事件都附加到它(http://docs.jquery.com/Events/live#typefn)。

答案 1 :(得分:2)

正如mck89建议的那样,如果在追加新dom之前运行代码,则不会绑定事件。

您可以链接事件的绑定或使用实时函数。

$('your html')
   .appendTo('#container')
   .find('a')
   .click(function() {
      alert('You clicked!');
   });