13

有没有办法判断 $.blockUI(); 已被调用但 $.unblockUI() 尚未被调用?理想情况下,这应该能够同时阻止整个页面和特定元素。

我希望它能像这样工作

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

3 回答 3

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
于 2012-05-23T07:18:54.260 回答
10

看看我在这里找到了什么

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

显然有一个 Block 和 unBlock 类似于 onSuccess 函数。因此,在 onBlock 函数上,您只需设置一个全局布尔值。

希望这可以帮助!

快乐编码!;)

于 2011-10-26T18:44:02.413 回答
5

我使用更原始的 hack:

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

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

即使.dialog()modal:true

于 2012-11-09T11:19:17.243 回答