Подтвердить что ты не робот

Jquery blockUI сказать, заблокирована ли страница или определенный элемент

Есть ли способ узнать, $.blockUI(); был вызван, но $.unblockUI() не был вызван? В идеале это должно быть способно работать как для блокировки полной страницы, так и для конкретных элементов.

Я ожидаю, что это сработает примерно так.

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

Ответ 1

Посмотрите, что я нашел здесь

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

Очевидно, что один для Block и unBlock sorta, как функция onSuccess. Поэтому в функции onBlock вы просто установите глобальное логическое значение.

Надеюсь, это поможет!

Счастливое кодирование!;)

Ответ 2

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

Ответ 3

Я использую более примитивный хак:

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

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

Это работает для меня даже при использовании .dialog() с modal:true