jQuery:动态表行不能处理事件

时间:2010-11-13 10:58:40

标签: jquery

我正在编写HTML产品表。在每列内部有很多列,其中包含许多jQuery事件(更改,单击等)附加到表单元素(按钮,文本,选择)。他们的工作非常好。

最后一列包含“add”链接,该链接使AJAX回调到一个在表中动态添加新行的URL。

$('table td .addrow').live('click', function() {
  var cur_obj = this;
  $.ajax({
   url: 'product/addrow',
   success: function(data) {
    $(cur_obj).parent().parent().after(data);
   }
  });
 });

该行正在动态添加,但即使它们与预加载的行一起正常工作,也没有任何jQuery事件正常工作。

3 个答案:

答案 0 :(得分:1)

您应该使用live()delegate() jQUery函数

答案 1 :(得分:1)

你不应该将你的.live()用法与添加链接分开吗?听起来你希望click(),change()等事件在所有行上都一样,所以将.live()事件添加到它们中,如:

$('table td').live('click', function() {
  //do stuff
});

因此.live()调用确保将新行添加到事件处理程序。如果在添加的每个新行上都有一个addrow元素,那么原始代码看起来没问题。

答案 2 :(得分:0)

$('table').delegate('td', 'click', function() { //do stuff });