2011-10-26 19 views
12

¿Hay alguna manera de saber si $ .blockUI(); ha sido llamado pero $ .unblockUI() no ha sido llamado? Idealmente, esto debería poder funcionar tanto para bloquear la página completa como para elementos específicos.jquery blockUI dice si la página o elemento específico está bloqueado

yo esperaría que funcione algo como esto

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

Respuesta

8

Mira lo que he encontrado here

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

Evidentemente hay uno para bloquear y desbloquear sorta como una función onSuccess. Entonces, en la función onBlock, simplemente establecería un valor booleano global.

Espero que esto ayude!

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

Esta debe ser la respuesta aceptada. –

+0

De acuerdo. Responde más directamente a la pregunta. –

5

utilizo un truco más primitivo:

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

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

Esto funciona para mí, incluso cuando se utiliza con .dialog()modal:true

Cuestiones relacionadas