2009-09-18 47 views
5

我已經實現了塊的用戶界面,因爲這個請求可能需要一點時間,當ajax請求啓動一切正常工作。blockUI的工作,但unBlockUI不是

但是當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(); 
      } 
     } 

    }); 
} 

回答

0

至於說here,使用

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

似乎來解決這個問題。我沒有得到任何其他方式在我自己的項目中解決它。

7
$.unblockUI(); 
$(".blockUI").fadeOut("slow"); 
+0

+1這個方案只是救了我從一個巨大的頭痛。謝謝!! – lhan 2011-11-30 01:37:14

+0

這是一個解決方法,但工作完美。我用 ''包裝了第二行'if($ .browser.msie && $ .browser.version <9){' – 2012-06-26 13:27:51

+0

Thanks mister:D – Harsha 2016-06-15 19:09:03

4

我有同樣的,並通過在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 米爾頓

+0

確實有意義,如果沒有它們,您實際上並沒有調用該函數。然而,文檔聲明,這是有效的。 – peterrus 2013-05-04 17:17:10