以下に示すアプローチ (つまり、別のソース関数とデータの中間変数) を使用して jQuery オートコンプリートを実装しようとしています。現在、オートコンプリート関数のソース部分にデータを取得しようとしています。
以下のコードは 1 つの致命的な問題で動作します。最初のキー ストロークで未定義のreturnData
変数が返されます。誰が何が起こっているのか説明できますか?
var returnData;
function sourceFn() {
return $.ajax({
url: //REST URL,
dataType: "jsonp",
async: false,
data: {
featureClass: "P",
style: "full",
maxRows: 12,
name_startsWith: request.term
},
success: function (data) {
returnData = data;
},
})
}
}
$("input#search-input").bind("autocompleteselect", jQuery.proxy(function (event, ui) {}, this)).autocomplete({
appendTo: "#yt-result-list",
source: function (request, response) {
sourceFn(request, response).done(alert("returnData: " + JSON.stringify(returnData)));
}
}).data("autocomplete")._renderItem = jQuery.proxy(function (ul, item) {
alert(item);
}, this)
});
});
});