表中的JQuery行不会在回调函数中被删除

时间:2015-04-21 08:40:17

标签: jquery ajax

我有一个包含删除按钮的动态创建的网格。 在我的Jquery中,我对服务器进行Ajax调用,以从数据库中删除数据行。 如果成功,我想从表中删除该行。 然而,这是最后一部分;从表中删除不起作用的行。 你能明白这是为什么吗?

$(".deleteSor").click(function () {
    var deleteUrl = GetHiddenField("msurvey-sor-delete-url");
    var row = $(this).closest('tr');
    var sorId = row.data("msurvey-sor-id");
    var sorCode = row.data("msurvey-sor-code");
    var briefDescription = row.data("msurvey-sor-brief-description");
    var message = "Are you sure you want to delete this SOR: {0} - {1}?".format(sorCode, briefDescription);
    if (confirm(message)) {
        dataService.deleteSor(sorId, row, removeRow, deleteUrl);
    }
});

var dataService = new function () {
    $.ajaxSetup({
        cache: false
    });
    var deleteSor = function(sorId, row, callback, url) {
        $.get(url, { sorId: sorId }, function(data) {
            callback(data, row);
        });
    };

    return {
        deleteSor: deleteSor
    };
}();

var removeRow = function (data, row) {
    if (data.Error) {
        alert(data.ErrorMessage);
    } else {
        $("#message").text(data.SuccessMessage);
        row.remove();
    }
}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 虽然我使用的是按钮标签,但似乎还有一些跟随click事件的回发事件。 所以我用这段代码阻止了它;

$(".deleteSor").click(function (e) {
        e.preventDefault();
        ...