删除AJAX添加的HTML

时间:2012-10-28 18:33:07

标签: javascript jquery ajax

我有一个构建订单的页面。该页面完全与ajax一起使用以查找产品并将其添加到页面中。

现在,如果你添加一个项目并需要删除它,我正在构建这样做的功能:

$('.orderRemove').click(function() {
    var removeID = $(this).attr("id");
    $("#item-" + removeID).remove();
    calculateTotal();
});

但是因为.orderRemove是由AJAX添加的,所以它不起作用。

如何使这个确切的调用工作,删除ajax添加的完整块。

谢谢

2 个答案:

答案 0 :(得分:5)

原因是动态添加HTML到DOM不会将自身附加到事件处理程序,因此要么在ajax成功回调中重新附加事件处理程序,要么尝试.delegate如果使用的jQuery版本小于{ {1}}或.on如果您使用的是jQuery 1.7或更高版本

1.7

以.on

为例
$(document).delegate('.orderRemove','click',function() {
    var removeID = $(this).attr("id");
    $("#item-" + removeID).remove();
    calculateTotal();
});

答案 1 :(得分:2)

你必须像这样使用on

$(document).on('click','.orderRemove',function() {
   var removeID = $(this).attr("id");
   $("#item-" + removeID).remove();
  calculateTotal();
});