1

我有一个使用beforeSend,success和的 AJAX 请求failure,但是当beforeSend被击中时,它会将其视为对象而不是方法调用。

这是 AJAX:

$.ajax({
    url: "@Url.Action("DeleteUser", "DataFeeds")/" + id,
    method: 'post',
    beforeSend: "deleting('" + id + "')",
    success: "deleted('" + full + "','" + id + "')",
    failure: "failed('" + id + "')"
});

只是为了踢,这是deleting()方法:

function deleting(id) {
    $('#btnDelete-' + id + ' span').html('Deleting...');
    $('#btnDelete-' + id + ' span').prop('disabled', 'disabled');
}

这是非常简单的东西,但我不明白为什么它将我的函数视为一个对象。

哈!

4

2 回答 2

1

您需要在那里传递一个额外的匿名函数,否则您只是分配一个字符串:

beforeSend: function(){ deleting(id) },
// same with the other methods...
于 2013-07-10T22:19:03.893 回答
0

我可能弄错了,但我不认为你可以在那里给 JQuery 一个字符串。您可以通过 currying 给它一个函数deleting

function deleting(id) {
    return function() {
        $('#btnDelete-' + id + ' span').html('Deleting...');
        $('#btnDelete-' + id + ' span').prop('disabled', 'disabled');
    }
}

和:

beforeSend: deleting(id),
于 2013-07-10T22:20:20.647 回答