2009-09-18 10 views
5

Implementé la interfaz de usuario del bloque ya que esta solicitud puede tardar un poco, el tiempo cuando la solicitud ajax comienza todo funciona como se esperaba.blockUI funciona pero unBlockUI no es

Pero cuando la solicitud de ajax finaliza y se muestra msgbox, ¡la IU no se desbloquea!

¿Alguna idea?

Estoy usando 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(); 
      } 
     } 

    }); 
} 

Respuesta

0

Como dijo here, utilizando

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

parece solucionar el problema. No encontré otra forma de resolverlo en mi propio proyecto.

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

1 Esta solución sólo me salvó de un gran dolor de cabeza. ¡¡Gracias!! – lhan

+0

Es una solución, pero funcionó a la perfección. Envolví la segunda línea con 'if ($ .browser.msie && $ .browser.version <9) {' –

+0

Gracias señor: D – Harsha

4

Tuve lo mismo y resolví utilizando parentesis en la frase 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; 
} 

HTH Milton

+0

tiene sentido, sin ellos no está realmente llamando a la función. La documentación indica lo contrario, sin embargo, esto funciona. – peterrus

Cuestiones relacionadas