我有一个像这样的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);
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);
});
};
我在这里使用bootstrap标签:https://github.com/maxwells/bootstrap-tags 问题是,当我从此代码中删除警报时,整个自动完成功能将停止工作。我试图将加载标记放在任何地方 - 成功,完成回调。我在ajax选项中设置了async:false,但是,如果没有警报,脚本将无法运行。 怎么了?请帮忙。我花了10个小时甚至更长时间才知道如何让它运转起来。
答案 0 :(得分:0)
您应该在成功或完成时加载代码 另一种方法是使用房屋...... 但这种方式更简单:)
complete: function () {
//here you load the tags
loadTags();
};