jquery不是刷新页面

时间:2015-02-03 07:17:04

标签: jquery ofbiz

$('.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。

1 个答案:

答案 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
});
相关问题