【发布时间】:2011-04-16 21:28:38
【问题描述】:
在 jQuery ajax 函数中,成功时提供给回调函数的数据是用
定义的success: function (data) { ...
但这让 JSLint 不开心(“不要在循环中创建函数”)。
如果我按照How to fix jslint error 'Don't make functions within a loop.'? 中的建议,Firebug 会抱怨“未定义数据”并且回调函数失败。
例子:
$(document).ready(function(){之前
function ajaxSuccess() {
return function (data) {
alert (data);
};
}
$(document).ready(function(){内
$.ajax({
type: "POST",
url: "some-url-here",
data: ({ "foo" : "bar" }),
success: ajaxSuccess(data)
});
导致“数据未定义”错误。
但是如果我把它改成
$.ajax({
type: "POST",
url: "some-url-here",
data: ({ "foo" : "bar" }),
success: function (data) {
ajaxSuccess(data);
}
});
那么一切都很糟糕——但现在我又回到了 JSLint 的起点。
假设我想通过 JSLint 的测试,我如何获取 url 返回的 data 并将其传递给相关函数?
【问题讨论】:
标签: javascript jquery jslint