将jQuery点击事件添加到动态添加的内容

前端之家收集整理的这篇文章主要介绍了将jQuery点击事件添加到动态添加的内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表由PHPMysqL填充的多行和列。对于一些td,我在document.ready函数添加了jQuery click-events,让用户更改内容

但是我也可以选择在表中添加行并手动填充。但是由于我添加的行不在文档中,所以他们不会得到附加的点击事件处理程序,所以我无法点击它们来获取输入框。

<table>
  <tr>
    <td class="clickable">Some info</td>
    <td class="clickable">Some more info</td>
    <td>Unchangable info</td>
  </tr>
  ... more similar rows ...
</table>

然后是jQuery

$("tr.clickable").click(function() {
   //add input fields
}

$("span#addNewRow").click(function() {
   $("table").append('<tr><td class="clickable"></td> ... </tr>')
}

解决方法

你想使用 live events,它是在1.3引入的。
$("tr.clickable").live("click",function() {
   //add input fields
});

$("span#addNewRow").live("click",function() {
   $("table").append('<tr><td class="clickable"></td> ... </tr>')
});

更新:请注意,从jQuery 1.7开始,不推荐使用live()。使用on()代替。在某些情况下,delegate()可能是一个更好的选择。见下面的评论

示例如何使用.on()

$("table").on("click","tr.clickable",function() {
   //add input fields
});

猜你在找的jQuery相关文章