我正在使用jquery API - jquery DataTables
,我有这段代码:
oSettings.aoDrawCallback.push({
"fn": function(){
},
"sName": "user"
});
在函数体内,我想执行Ajax
请求。当我在这里直接写它时:
"fn": function(){
$.ajax({
url: "url",
type: "POST",
async: false,
data: data,
success: function (data) {
console.log(data);
}
}),
还有更多只是一个例子来展示一切正常的方式。然后我创建了自己的函数:
function initCredits(id, inputVal, chkSelected) {
console.log(id);
$.ajax({
url: "URL",
type: "POST",
async: false,
data: data
success: function (data) {
}
})
}
并试图像{I}那样做fn
:
oSettings.aoDrawCallback.push({
"fn": initCredits(id, inputVal, chkSelected),
"sName": "user"
});
这给了我一个错误Uncaught TypeError: Cannot read property 'apply' of undefined
。现在,文本来自jquery DataTables
API,但我可能只有两个原因可能会破坏我的代码,因为它正在将其用于外部函数。首先 - 我试图以错误的方式来协助函数,其次 - 你可能会看到我需要三个变量用于我的ajax请求(id, inputVal, chkSelected)
,这些变量是从我正在执行此操作的函数中收集的:
oSettings.aoDrawCallback.push({
"fn": initCredits(id, inputVal, chkSelected),
但是控制台日志显示值是正确的,所以我认为这不太可能成为问题,但我仍然认为它。
答案 0 :(得分:1)
此:
"fn": initCredits(id, inputVal, chkSelected),
... 调用该函数并指定返回值。
要分配该功能,只需执行:
"fn": initCredits,