jquery-如何等待从ajax加载变量
我有一个jqyery函数,如下所示:jquery-如何等待从ajax加载变量,jquery,ajax,variables,tags,Jquery,Ajax,Variables,Tags,我有一个jqyery函数,如下所示: var tagList = []; var suggestedTags = []; var tags; $("#tags-add").keyup(function (e) { var regex = new RegExp("^[a-zA-Z0-9]+$"); var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
var tagList = [];
var suggestedTags = [];
var tags;
$("#tags-add").keyup(function (e) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str) || e.keyCode == 8) {
query = $("input.tags-input").val();
var form_data = {
query: query
};
$.ajax({
type: "POST",
url: base_url + "ajax/tags/get_tags",
dataType: 'json',
async: false,
data: form_data,
success: function (data) {
tagList = data;
},
complete: function () {
}
});
alert("script is not working without this alert");
loadTags();
var tags = $('#tags-add').tags();
$('#tags-add').tags().suggestions = suggestedTags;
$('#tags-add').tags().restrictTo = suggestedTags;
return false;
}
});
var loadTags = function () {
suggestedTags = [];
$.each(tagList, function (index, item) {
suggestedTags.push(item.tagName);
});
};
我在这里使用引导标记:
问题是,当我从代码中删除警报时,整个自动完成功能停止工作。我试着把加载标签放在每一个地方——成功地完成了回调。我将async:false放在ajax选项中,但脚本在没有警报的情况下仍然无法工作。
怎么了?请帮忙。这花了我10个多小时,我不知道如何让它工作。你应该在success或complete中加载标签 另一种方法是使用前提。。。 但这种方式更简单:)
将所有需要ajax调用数据的代码放入success函数,并删除async=false。或者获取一些已经过测试的代码:当这些代码成功时,是否有错误消息?
complete: function () {
//here you load the tags
loadTags();
};