Jquery ajax div没有为db update更新

时间:2013-11-19 14:07:31

标签: jquery html ajax

我正在使用一个对话框来更新我的数据库并删除服务。

不幸的是,它仅适用于第一次“删除”点击。

所以,我点击打开对话框。我面临着5项服务的清单。

我点击删除第5个服务,数据库更新,列表(在对话框内)重新加载,选择标记(在主页面上)重新加载好。

如果我在第4次服务中重复此步骤,则不会发生任何事情:db update,list update和select update

我的jquery处理程序在下面,是不是知道为什么这不起作用?

$(function () {
    $(".deletesector").click(function () {
        var name = $(this).attr('name');
        var dataString = 'serviceid=' + name;
        $.ajax({
            type: "POST",
            url: "./ajax/remove-service.php?" + dataString,
            dataType: "html",
            data: dataString,
            success: function (msg) {
                //UPDATE THE SELET BOXES CONTAINING THE SERVICES
                $("#service1-holder").load('./views/service-list1.tmp.php');

                // UPDATE THE LIST OF SERVICE
                $("#list-of-services").load('./views/list-of-services-for-removal.php');
            }
        });
    });
});

2 个答案:

答案 0 :(得分:4)

不要使用.click重做那里的ajax事件。请使用.on()。

  

.on()方法将事件处理程序附加到当前选定的集合   jQuery对象中的元素。从jQuery 1.7开始,使用.on()方法   提供附加事件处理程序所需的所有功能。对于   帮助转换旧的jQuery事件方法,请参阅.bind(),   .delegate()和.live()。要删除与.on()绑定的事件,请参阅   .off()。附加仅运行一次然后删除的事件   本身,见.one()

请参阅此处的文档:http://api.jquery.com/on/

所以你的代码是:

$(function () {
    $(document).on('click', '.deletesector', function () {
        var name = $(this).attr('name');
        var dataString = 'serviceid=' + name;
        $.ajax({
            type: "POST",
            url: "./ajax/remove-service.php?" + dataString,
            dataType: "html",
            data: dataString,
            success: function (msg) {
                //UPDATE THE SELET BOXES CONTAINING THE SERVICES
                $("#service1-holder").load('./views/service-list1.tmp.php');

                // UPDATE THE LIST OF SERVICE
                $("#list-of-services").load('./views/list-of-services-for-removal.php');
            }
        });
    });
});

答案 1 :(得分:0)

也许你必须将事件绑定到新的#service-holder ...你试过吗?。

$( "#service-holder" ).bind( "click", your_function);