2009-09-18 27 views
5

Tôi đã triển khai giao diện người dùng khối vì yêu cầu này có thể mất một chút thời gian khi yêu cầu ajax bắt đầu mọi thứ hoạt động như mong đợi.blockUI hoạt động nhưng unBlockUI Không phải là

Nhưng khi yêu cầu ajax kết thúc và hộp thư được hiển thị, giao diện người dùng không bỏ chặn!

Bất kỳ ý tưởng nào?

Tôi đang sử dụng IE8.

$().ajaxStart($.blockUI); 
$().ajaxStop($.unblockUI); 

function ChangeCompanyState(companyId, state) { 
    var parameters = "{companyId:" + companyId + ",state:\"" + state + "\"}"; 
    $.ajax({ 
     type: "POST", 
     url: "Ajax/AjaxFragments.aspx/ChangeCompanyState", 
     data: parameters, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      if (msg.d.length > 1) { 
       alert(msg.d); 
       $.unblockUI(); 
      } 
      else { 
       //Theres no message to process success. 
       window.location.reload(); 
      } 
     } 

    }); 
} 

Trả lời

0

Như đã nói here, sử dụng

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 

dường như để sửa chữa vấn đề. Tôi đã không nhận được bất kỳ cách nào khác để giải quyết nó trong dự án của riêng tôi.

7
$.unblockUI(); 
$(".blockUI").fadeOut("slow"); 
+0

1 Giải pháp này chỉ cứu tôi khỏi nhức đầu rất lớn. Cảm ơn!! – lhan

+0

Đó là một cách giải quyết nhưng hoạt động hoàn hảo. Tôi bọc dòng thứ hai với 'if ($ .browser.msie && $ .browser.version <9) {' –

+0

Cảm ơn mister: D – Harsha

4

Tôi đã giống nhau và được giải quyết bằng cách sử dụng parentesis trong câu unbluckUI.

// block when ajax activity starts 
function beginRequestHandler(sender, args) { 
    $.blockUI({ message: '<h1><img src="loading.gif" /> Just a moment...</h1>' }); 
} 

// unblock when ajax activity stops 
function endRequestHandler(sender, args) { 
    $.unblockUI(); // previously was $.unblockUI; 
} 

HTH Milton

+0

có ý nghĩa thực sự, không có chúng, bạn không thực sự gọi hàm. Tuy nhiên, tài liệu nêu rõ điều này. – peterrus

Các vấn đề liên quan