Я пытаюсь реализовать автозаполнение jQuery, используя описанный ниже подход (то есть отдельную функцию источника и промежуточную переменную для данных). Сейчас я пытаюсь получить данные в исходную часть функции автозаполнения.Возвращаемые данные для первого ключевого штриха undefined в jQuery autocomplete
Код ниже работает с одной фатальной проблемой, самый первый штрих клавиши возвращает неопределенную переменную 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)
});
});
});
minL длина: 0 не делал. Я получаю хорошие данные в функции успеха AJAX на одном ключевом штрихе, но он запускается после sourceFn (запрос, ответ) .done(). –
returnData назначается из вызова ajax, если он не определен в первом такте, есть вероятность, что вы не получите никаких данных. Поместите предупреждение в onsuccess вызова ajax. –