我有一个构建订单的页面。该页面完全与ajax一起使用以查找产品并将其添加到页面中。
现在,如果你添加一个项目并需要删除它,我正在构建这样做的功能:
$('.orderRemove').click(function() {
var removeID = $(this).attr("id");
$("#item-" + removeID).remove();
calculateTotal();
});
但是因为.orderRemove是由AJAX添加的,所以它不起作用。
如何使这个确切的调用工作,删除ajax添加的完整块。
谢谢
答案 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();
});