blockUI无效

我有以下代码我在使用块ui,但它没有阻止page.i我正在使用ajax调用来获取用户控制结果(局部视图)加载到div中的div。在ajax调用我想阻止整个页面使用blockui。

$('#btnGO').click(function() { if (validate()) { alert("loading"); $.blockUI({ message: '' }); //this is not working $.ajax({ type: "POST", url: "/Controller/action/", //to get the partial view async: false, cache: false, beforeSend: function() { }, complete: function() { alert("ajax complete event") $.unblockUI(); }, data: $('#frmPassBook').serialize(), error: function(xhr, status, error) { $('#ErrorMessage').html(xhr.responseText); $("#ErrorMessage").stop().show('slow'); $('#ui-widget').show(); $.unblockUI(); }, success: function(data) { $("#aCBDetails").parent().show(); $("#divCBDetails").hide("blind"); $("#aCBDetails span:first").removeClass("ui-icon-circle-triangle-n").addClass("ui-icon-circle-triangle-s"); $('#ui-widget').hide(); //loading html in div $("#div").html(data); if ($("#rbMain") != undefined) { if ($("#rbMain").attr("checked")) { $(".subTrId").hide(); $("#spSub").hide(); $("#spMain").show(); } else { $(".subTrId").show(); $("#spSub").show(); $("#spMain").hide(); } } else { $("#spSub").show(); $("#spMain").hide(); } //unblocking after div is loaded with html $.unblockUI(); } }); } else { $.unblockUI(); } return false ; }); 

使用baseZ索引来阻止整个页面,例如。

 $.blockUI({ message: "", baseZ: 9000, css: { top: ($(window).height() - 400) /2 + "px", left: ($(window).width() - 400) /2 + "px", width: "400px"} }); 

尝试使用jQuery的ajaxStartajaxStop方法。 这些将使您能够在ajax调用启动时应用loader并在结束时将其删除。