2011-10-26 6 views
12

Có cách nào để biết liệu $ .blockUI(); đã được gọi nhưng $ .unblockUI() chưa được gọi? Lý tưởng nhất điều này sẽ có thể làm việc cho cả hai ngăn chặn toàn bộ trang và các yếu tố cụ thể.jquery blockUI cho biết nếu trang hoặc phần tử cụ thể bị chặn

tôi mong đợi nó hoạt động giống như

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

Trả lời

8

Look này những gì tôi tìm thấy here

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

Rõ ràng có một cho chặn và bỏ chặn sorta như một hàm onSuccess. Vì vậy, trên hàm onBlock, bạn chỉ cần đặt giá trị boolean toàn cục.

Hy vọng điều này sẽ hữu ích!

Mã hóa hạnh phúc! ;)

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

này nên là câu trả lời chấp nhận. –

+0

Đồng ý. Nó trực tiếp trả lời câu hỏi. –

5

tôi sử dụng một hack nguyên thủy hơn:

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

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

này làm việc cho tôi ngay cả khi sử dụng .dialog() với modal:true