我正在编写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事件正常工作。
答案 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
});