0

当用户单击我的应用程序中的相应按钮时,我想启动一些弹出窗口。我用

$('#modal').on('show', function () {
    $.ajax({  ...  });
});

使用 ajax,我从 mysql 请求一些我希望注入到 modal-header、modal-body 和 modal-footer 的 json 内容。这是我通常在我的网页中使用的 html,我想在做出按钮选择时刷新并显示它。

        <div class="modal hide fade" id="modal">
            <div class="modal-header"></div>
            <div class="modal-body"></div>
            <div class="modal-footer"></div>
        </div>

问题是模态显示为空或显示以前交付的内容,并且在 1 秒左右之后,ajax 带来了更新的好东西等等。所以内容的更新在用户眼前悲哀地运行。模态 api 没有提供比“显示”更好的选项,因此只有当整个内容由 ajax 带来并准备好传送到最终用户的屏幕时,才能显示模态。

4

1 回答 1

1

好的,我尝试了一些不同的东西。当单击按钮并在成功选项上保留第一个内容时,我运行 ajax 调用,然后我手动调用模态窗口以显示其更新的好东西。

$('a[href=#viewProperty]').click(function(e) {

    var dataString = "action=viewProperty&propertyId=" + $.cookie('propertyId');

    $.ajax({
        type     : "GET",
        dataType : "json",
        url      : "ajax/property.php",
        data     : dataString,
        success  : function(data){
            console.log("ajax works");
            //$.removeCookie('propertyId');
            console.log(data.house_type);
            $('#viewProperty h3').empty().html('View Property: ' + data.house_type);

            $('#viewProperty').modal('show');               
        },
        error    : function(){
            console.log("ajax failed");
        }
    }); 

    return false;   
});

并且工作正常。剩下的就是在 ajax 调用完成之前添加一个加载器。

于 2013-01-10T18:36:42.530 回答