jquery-如何等待从ajax加载变量

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);

我有一个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);
        });
    };
我在这里使用引导标记: 问题是,当我从代码中删除警报时,整个自动完成功能停止工作。我试着把加载标签放在每一个地方——成功地完成了回调。我将async:false放在ajax选项中,但脚本在没有警报的情况下仍然无法工作。
怎么了?请帮忙。这花了我10个多小时,我不知道如何让它工作。

你应该在success或complete中加载标签 另一种方法是使用前提。。。 但这种方式更简单:)


将所有需要ajax调用数据的代码放入success函数,并删除async=false。或者获取一些已经过测试的代码:当这些代码成功时,是否有错误消息?
complete: function () {
            //here you load the tags 
            loadTags();
           };