15

Is there a way to tell if $.blockUI(); has been called but $.unblockUI() has not been called? Ideally this should be able to work for both blocking the full page and specific elements.

I'd expect it to work something like this

> $.blockUI();
> $.isBlockUI?():
>> true
> $.unblockUI();
> $.isBlockUI?();
>> false
will
  • 3,103
  • 4
  • 25
  • 30

3 Answers3

31
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
Philip Rich
  • 637
  • 1
  • 9
  • 20
Oleg
  • 1,291
  • 13
  • 16
10

Look what I found here

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

Evidently there's one for Block and unBlock sorta like a onSuccess function. So on the onBlock function you'd simply just set a global boolean value.

Hope this helps!

Happy Coding! ;)

Carl Finch
  • 152
  • 1
  • 11
4

I use a more primitive hack :

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

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

This works for me even when using .dialog() with modal:true

Robin Maben
  • 22,194
  • 16
  • 64
  • 99
  • Can you tell if a SPECIFIC element is blocked? That's half the question asked. (I know this is super old. Was just looking for the answer myself.) – Will Belden May 02 '23 at 20:17