2009-09-18 2 views
5

Ho implementato l'interfaccia utente del blocco poiché questa richiesta può richiedere un po 'di tempo, quando la richiesta ajax avvia tutto funziona come previsto.blockUI funziona ma unBlockUI non è

Ma quando la richiesta Ajax termina e viene visualizzata la casella msg, l'interfaccia utente non viene sbloccata!

Qualche idea?

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

    }); 
} 

risposta

0

Come detto here, utilizzando

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

sembra risolvere il problema. Non ho avuto nessun altro modo per risolverlo nel mio progetto.

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

+1 Questa soluzione solo mi ha salvato da un mal di testa enorme. Grazie!! – lhan

+0

È una soluzione, ma ha funzionato perfettamente. Ho avvolto la seconda riga con 'if ($ .browser.msie && $ .browser.version <9) {' –

+0

Grazie signore: D – Harsha

4

Ho avuto lo stesso, e risolto utilizzando Parentesis nella 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

ha davvero senso, senza di loro in realtà non si sta chiamando la funzione. Tuttavia, la documentazione afferma diversamente, questo funziona. – peterrus