$('.harvest-sch-grade-delete').click(function(){
jQuery.ajax({
url: "/smartfarm/control/deleteHarvestSchedule",
type: "POST",
data: {harvestScheduleId:$(this).attr("data")},
success: function(data) {
jQuery.ajax({
url: "/smartfarm/control/ajaxHarvestScheduleList",
type: "POST",
data: {cropId:$('.harvest-sch-grade-delete').attr("val")},
success: function(data) {
$('.harvest-schedule-list').html(data);
$(".alert-box-sch").html("Harvest Grade Schedule Deleted!!");
$('.alert-box-sch').show();
setTimeout(function() { $(".alert-box-sch").hide(); }, 5000);
$('.info-box-sch').hide();
$('.warning-box-sch').hide();
}
});
}
});
});
我的删除功能在没有删除之后工作了2次?。我又添加了一个ftl文件用于ajaxification。
答案 0 :(得分:0)
事件处理程序仅绑定到当前选定的元素;它们必须存在于您的代码进行事件绑定调用时的页面上。
正在更新HTML。您需要使用Event Delegation委托事件方法{/ 3}}。
即
$(document).on('event','selector',callback_function)
代替document
,您应该使用最接近的静态容器以获得更好的性能。
委派事件的优点是,它们可以处理来自稍后添加到文档的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,我们可以使用委托事件将click事件绑定到动态创建的元素,并且还避免频繁附加和删除事件处理程序的需要。
立即使用问题
$('.harvest-schedule-list').on('click','.harvest-sch-grade-delete', function(){
//Your code
});
而不是
$('.harvest-sch-grade-delete').click(function(){
//Your code
});