jQuery autocomplete - дождаться загрузки всех документов - PullRequest
2 голосов
/ 16 декабря 2010

Я вызываю несколько документов XML в качестве источника для автозаполнения.Я хочу, чтобы мое «загрузочное» сообщение исчезло после загрузки всех документов.В настоящее время он исчезает после загрузки первого.

Спасибо

function callAjax(data1, url){
$.ajax({
    url: url,
    dataType: "xml",
    success:
        function(xmlResponse) {
            totalrec = $("TOTALREC", xmlResponse).text();
            endrec = $("ENDREC", xmlResponse).text();
            var data = $("ROW", xmlResponse).map(returnResults).get(data);
            $.merge(data1, data);
            if(endrec<totalrec){
                callAjax(data1, url + "&page_no="+ parameter++);
            }


        $("#_results").removeClass( "ui-autocomplete-loading" ).addClass("idleField");
        $("#_results").val( "Search by Application, Keyword, Process or Name" );
        $("#_results").attr( "disabled", "" );
        $("#_results").autocomplete({
            source: data1,
            minLength: 0,
            selectFirst: true,
            select: function(event, ui) {
                if(event.keyCode == 13){
                    window.open(ui.item.url);
                    $("#_results").blur();
                }
            }                   
        })

Ответы [ 2 ]

1 голос
/ 16 декабря 2010

Поместите код автозаполнения в else в проверке if(endrec<totalrec).

0 голосов
/ 16 декабря 2010

Вот так:

function callAjax(data1, url){$.ajax({
url: url,
dataType: "xml",
success:
    function(xmlResponse) {
        totalrec = $("TOTALREC", xmlResponse).text();
        endrec = $("ENDREC", xmlResponse).text();
        var data = $("ROW", xmlResponse).map(returnResults).get(data);
        $.merge(data1, data);
        if(endrec<totalrec){
            callAjax(data1, url + "&page_no="+ parameter++);
        } else {
            $("#_results").removeClass( "ui-autocomplete-loading" ).addClass("idleField");
            $("#_results").val( "Search by Application, Keyword, Process or Name" );
            $("#_results").attr( "disabled", "" );
            $("#_results").autocomplete({
                source: data1,
                minLength: 0,
                selectFirst: true,
                select: function(event, ui) {
                    if(event.keyCode == 13){
                        window.open(ui.item.url);
                        $("#_results").blur();
                    }
                }                   
            });   
        }        
}

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...