Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jquery blockUI tell if page or specific element is blocked

Tags:

jquery

blockui

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
like image 714
will Avatar asked Oct 26 '11 18:10

will


3 Answers

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
like image 121
Oleg Avatar answered Nov 07 '22 12:11

Oleg


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! ;)

like image 29
Carl Finch Avatar answered Nov 07 '22 11:11

Carl Finch


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

like image 5
Robin Maben Avatar answered Nov 07 '22 10:11

Robin Maben