在提供給成功回調函數jQuery的AJAX功能的數據「不要在一個循環中做功能」是指與未定義jQuery的價值時,試圖糾正的JSLint抱怨:
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
,並將它傳遞給相關函數?
好極了。謝謝,但如果還有其他參數,例如我們依賴全局變量? – PartialOrder 2010-09-24 17:02:17
ajaxSuccess可以具有與成功相同的參數。我只是以一個爲例。 – 2010-09-24 18:08:33
燈泡閃爍。謝謝詹姆斯 – PartialOrder 2010-09-24 19:24:13