2011-10-26 7 views
12

C'è un modo per dire se $ .blockUI(); è stato chiamato ma $ .unblockUI() non è stato chiamato? Idealmente questo dovrebbe essere in grado di funzionare sia per bloccare la pagina intera che per elementi specifici.blocco jQuery Indica se la pagina o l'elemento specifico è bloccato

mi aspetto di lavorare qualcosa di simile

> $.blockUI(); 
> $.isBlockUI?(): 
>> true 
> $.unblockUI(); 
> $.isBlockUI?(); 
>> false 

risposta

8

Guardate cosa ho trovato here

$(document).ready(function() { 
    $('#demo14').click(function() { 
     $.blockUI({ 
      fadeIn: 1000, 
      timeout: 2000, 
      onBlock: function() { 
       alert('Page is now blocked; fadeIn complete'); 
      } 
     }); 
    }); 

Evidentemente ce n'è uno per bloccare e sbloccare sorta come una funzione onSuccess. Quindi con la funzione onBlock devi semplicemente impostare un valore booleano globale.

Spero che questo aiuti!

Happy Coding! ;)

24
var data = $('#element').data(); 
//will return Object like: { blockUI.isBlocked=1, blockUI.onUnblock=null} 

if (data["blockUI.isBlocked"] == 1) 
// is blocked 
else 
// is not blocked 
+5

Questa dovrebbe essere la risposta accettata. –

+0

concordato. Risponde più direttamente alla domanda. –

5

Io uso un hack più primitivo:

var isUIBlocked = $('.ui-widget-overlay:visible').length > 0; 

if(isUIBlocked){ 
    // something is displayed with an active overlay, hence stop 
} 

Questo funziona per me anche quando si utilizza .dialog() con modal:true

Problemi correlati