2009-09-18 4 views
5

Я реализовал интерфейс блока, так как этот запрос может занять немного времени, когда начинается запрос ajax, все работает так, как ожидалось.blockUI работает, но unBlockUI не

Но когда запрос ajax заканчивается и отображается msgbox, пользовательский интерфейс не разблокируется!

Любые идеи?

Я использую 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

+0

Это обходной путь, но он отлично работает. Я завернул вторую строку с 'if ($ .browser.msie && $ .browser.version <9) {' –

+0

Спасибо господин: D – Harsha

4

У меня было то же самое и разрешено с помощью parentesis в unbluckUI-предложении.

// 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; 
} 

НТН Милтон

+0

действительно имеет смысл, без них вы фактически не вызываете функцию. Однако в документации указано, что это работает. – peterrus

Смежные вопросы