未捕获类型错误:对象“function()”没有方法'呼叫'

Uncaught Type Error: Object `function()` has no method 'call'?

本文关键字:有方法 呼叫 function 类型 错误 对象      更新时间:2023-09-26

我有一个AJAX请求,它使用beforeSendsuccessfailure,但当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');
}

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

停下!

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

beforeSend: function(){ deleting(id) },
// same with the other methods...

我可能错了,但我认为不允许在那里给JQuery一个字符串。您可以通过调用deleting:来给它一个函数

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

和:

beforeSend: deleting(id),