【问题标题】:blockUI works but unBlockUI Isn'tblockUI 有效,但 unBlockUI 无效
【发布时间】:2010-11-29 09:48:31
【问题描述】:

我已经实现了块 UI,因为这个请求可能需要一点时间,当 ajax 请求启动时一切都按预期工作。

但是当 ajax 请求完成并显示 msgbox 时,UI 并没有解除阻塞!

有什么想法吗?

我使用的是 IE8。

$().ajaxStart($.blockUI); 
$().ajaxStop($.unblockUI); 

function ChangeCompanyState(companyId, state) {
    var parameters = "{companyId:" + companyId + ",state:\"" + state + "\"}";
    $.ajax({
        type: "POST",
        url: "Ajax/AjaxFragments.aspx/ChangeCompanyState",
        data: parameters,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            if (msg.d.length > 1) {
                alert(msg.d);
                $.unblockUI();
            }
            else {
                //Theres no message to process success.
                window.location.reload();
            }
        }

    });
}

【问题讨论】:

    标签: jquery ajax blockui


    【解决方案1】:
    $.unblockUI();
    $(".blockUI").fadeOut("slow"); 
    

    【讨论】:

    • +1 这个解决方案让我免于头疼。谢谢!!
    • 这是一种解决方法,但效果很好。我用if ($.browser.msie && $.browser.version < 9) {包裹了第二行
    【解决方案2】:

    我也有同样的情况,并通过在 unbluckUI 语句中使用 parentesis 来解决。

    // block when ajax activity starts
    function beginRequestHandler(sender, args) {
        $.blockUI({ message: '<h1><img src="loading.gif" /> Just a moment...</h1>' });
    }
    
    // unblock when ajax activity stops 
    function endRequestHandler(sender, args) {
        $.unblockUI(); // previously was $.unblockUI;
    }
    

    HTH 米尔顿

    【讨论】:

    • 确实有意义,没有它们,您实际上并没有调用该函数。但是,文档另有说明,这是可行的。
    【解决方案3】:

    正如here 所说,使用

    <meta http-equiv="X-UA-Compatible" content="IE=7" />
    

    似乎解决了这个问题。在我自己的项目中,我没有得到任何其他方法来解决它。

    【讨论】:

      猜你喜欢
      • 2014-10-25
      • 2017-01-08
      • 2012-05-08
      • 2017-03-15
      • 2014-10-30
      • 2011-03-08
      • 2013-11-27
      • 2017-12-13
      • 2015-01-05
      相关资源
      最近更新 更多