0

我使用这个 js 为我的网页的所有页面显示一个“请稍候”弹出窗口“我将它包含在标题中”,它工作正常,并在每次 ajax 调用时显示弹出窗口,并在完成后隐藏。

$('#loadingDiv')
    .hide()  // hide it initially
    .ajaxStart(function() {$('#loadingDiv').dialog({ resizable: false }).show();$(".ui-dialog-titlebar").hide();})
    .ajaxStop(function() {$('#loadingDiv').dialog("close");});

问题出现在使用 jquery 自动完成插件的页面中,因为它会干扰自动完成并且 ac 不再显示其下拉列表 我的自动完成 JS

$('input.completeme').each(function() {


$(this).autocomplete({
            source: function(request, response) {
                $.ajax({ url: '<?=base_url()?>booking/ac',
                data: { 'term': this.term,'name': this.element.attr('name') },
                dataType: "json",
                type: "POST",
                success: function(data){
                    response(data);
                }
            });
        },
        select: function(event, ui){
                    $("#pt_name").val(ui.item.name);
                    $("#pt_id").val(ui.item.id);
                    $("#pt_dob").val(ui.item.dob);
        },
        minLength: 2
    });
});

我认为因为自动完成也使用 .ajaxStop,所以有没有办法解决这个问题?

我真的很喜欢这个函数,因为它绑定到所有 ajax 调用,我将它包含在我的标题中,不再担心请等待弹出窗口。但它看起来像自动完成讨厌它:(

4

1 回答 1

0

使用“文档”来绑定 ajaxStop 事件。

$(document).ajaxStop(function(){...})

我已经测试过这个解决方案并且没有问题。

于 2012-12-27T10:51:57.540 回答