Javascript 回调返回未捕获的TypeError:回调不是函数
背景信息 我正在制作一个应用程序,通过AJAX调用从数据中获取数据。如果success方法满足要求,它将调用函数并将回调参数作为参数传递。然后在for循环中调用回调 问题 无论何时调用回调函数,它都会抛出错误uncaughttypeerror:callback不是函数(第39行) 我已查找并尝试的来源 首先,我要说,我已经对回调参数执行了Javascript 回调返回未捕获的TypeError:回调不是函数,javascript,jquery,callback,Javascript,Jquery,Callback,背景信息 我正在制作一个应用程序,通过AJAX调用从数据中获取数据。如果success方法满足要求,它将调用函数并将回调参数作为参数传递。然后在for循环中调用回调 问题 无论何时调用回调函数,它都会抛出错误uncaughttypeerror:callback不是函数(第39行) 我已查找并尝试的来源 首先,我要说,我已经对回调参数执行了console.log(),并且该值是正确的 我的代码 “setcheckbox”是一个字符串而不是回调,它是一个函数fyiTry:bibleQuery
console.log()
,并且该值是正确的
我的代码
“setcheckbox”
是一个字符串而不是回调,它是一个函数fyiTry:bibleQuery(“,“getB”,setcheckbox)代码>。我想这是在中国编程的副作用PHP@ibrahimmahrir我想指出上面的评论“是字符串而不是回调”。它仍然抛出相同的错误,即使没有引号。那么,您确定存在一个名为setCheckboxes
的函数吗?@ibrahimmahrir我无意中保留了旧名称。感谢您指出这一点,我们进行了编辑,这样将来人们就不会认为我调用了错误的函数。bibleQuery变成了查询。我在这里做了一个错误的复制粘贴(我对它进行了最初的评论,并在发布时删除了正确的函数调用)。但你的评论仍然正确。请随意编辑注释,将“bibleQuery”改为“Query”,因为这是一条有效的注释:)
function Query(eventObject, button, callback)
{
//replaced not relevant code here with a comment.
success: function(response)
{
if (button === "getB")
{
//success fetches correctly. Already checked whether response could be empty. This is not the case
response = JSON.parse(response);
if (callback)
{
//pass the callback along
rollOut(response, callback);
}
}
}
}
//THE FUNCTION I AM TRYING TO INVOKE
function setCheckboxes(valueToCompare)
{
console.log(valueToCompare);
}
function rollOut(jsonResponse, callback)
{
$(`.show-divSet`).on(`click`, function () {
for (let i = 0; i < jsonResponse.length; i++)
{
if (jsonResponse[i]["version"] !== "")
{
//CONSOLE SHOWS ME THE CORRECT VALUE
console.log(callback);
//THIS IS LINE 39. THIS IS WHERE THE ERROR IS THROWN
callback(jsonResponse[i]["version"]);
}
}
});
}
$(function () {
// I have already tried setCheckboxes WITHOUT quotes, but unfortunately this didn't work either
Query("", "getB", "setCheckboxes");
});