[英]calling method in javascript, but error throws?
我需要在几个地方调用ajax方法。 因此,要尝试通过为其创建单独的方法来尽量减少代码。 如果直接使用,效果很好。 但是当我分开时,它将无法工作。
data: columns[5],
type: 'autocomplete',
options: { items: 100 },
source: function (query, process) {
$.ajax({
url: "/EditInitiatives.svc/GetLocationData?clientId=" + $value.val(),
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {
query: query
},
success: function (response) {
process(response.d);
}
});
},
strict: true
}
如果我这样打电话,那是行不通的。 它说Microsoft JScript runtime error: 'query' is undefined
,如何解决?
{
data: columns[4],
type: 'autocomplete',
options: { items: 100 },
source: callAutoCompleteAjaxMethod(query, process, "/EditInitiatives.svc/GetLocationData?clientId=" + $value.val()),
strict: true
},
callAutoCompleteAjaxMethod = function (query, process, url) {
$.ajax({
url:url,
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: {
query: query
},
success: function (response) {
process(response.d);
}
});
},
你打电话
source: callAutoCompleteAjaxMethod(query, ...
但是您从来没有给“查询”一个值,而是给它一个值,它将起作用。
您正在调用该函数,而不是将其分配给source属性。 并且目前还没有定义变量query
。
您必须分配一个函数,以便该插件以后可以调用它:
source: function (query, process) {
callAutoCompleteAjaxMethod(
query,
process,
"/EditInitiatives.svc/GetLocationData?clientId=" + $value.val()
);
}
(我希望在某个地方定义$value
)
函数引用后的括号( ()
)始终立即调用该函数。 如果要传递对该函数的引用,则不要在其后加上括号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.