使用AJAX查询更新模态并等待

时间:2018-09-12 19:19:06

标签: javascript jquery ajax

我有一个使用AJAX的基本jQuery函数。单击按钮后,将进行AJAX调用,成功后,将模式的HTML设置为响应。

代码工作正常,但是我遇到的问题是第二次启动模式时。它显示上一个AJAX调用的HTML内容,然后在1-2之后立即更改。因此,我觉得在完全将HTML设置为响应之前,正在调用show方法。

当前代码

$(document).ready(function () {
    $('body').on('click',
        '.show-quickview',
        function() {
            $.ajax({
                type: "GET",
                url: '/Product/Index',
                data: {
                    slug: this.id,
                    type: this.name,
                },
                success: function(response) {
                    $("#quickviewModal").html(response);                        
                    $('#quickviewModal').modal('show');
                }
            });
        });


});

我试图将演出放到完整的地方,但我仍然得到相同的答复。

$(document).ready(function () {
    $('body').on('click',
        '.show-quickview',
        function() {
            $.ajax({
                type: "GET",
                url: '/Product/Index',
                data: {
                    slug: this.id,
                    type: this.name,
                },
                success: function(response) {
                    $("#quickviewModal").html(response);
                },
                complete: function(response) {
                    $('#quickviewModal').modal('show');
                }
            });
        });


});

请问如何使quickviewModel仅在完全设置为AJAX响应后才能显示。

1 个答案:

答案 0 :(得分:0)

也许您可以尝试以下方法:

$.ajax({
    type: "GET",
    url: '/Product/Index',
    data: {
        slug: this.id,
        type: this.name,
    },
    beforeSend: function() {
        $("#quickviewModal").html("");
    },
    success: function(response) {
        $("#quickviewModal").html(response);
        $('#quickviewModal').modal('show');
    },
    complete: function(response) {
    }
});

有关jQuery状态的更多信息,您可以在这里找到:http://api.jquery.com/jquery.ajax/