我在执行请求时使用jquery BlockUI插件来锁定屏幕。默认情况下,我为每个ajax调用设置它。但我也有Bootstrap模式,它使用ajax加载数据。
$(document)
.ajaxStart(function() {
$.blockUI({
message: $('#img-loader'),
css: {
border: 'none',
padding: '5px',
'background-color': 'transparent',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .6,
color: '#fff',
cursor: 'wait'
}
});
})
.ajaxStop($.unblockUI);
问题 - 当我打开模态屏幕变暗时(应用2个块UI)。 打开模态时如何unblockUI(只使用Bootstrap后台锁?)
我尝试了什么:
$('.modal').on('shown.bs.modal', function() {
$.unblockUI();
});
OR
$('.modal').on('show.bs.modal', function() {
$.unblockUI();
});
但这不起作用。似乎BlockUI插件阻止屏幕了一会儿。
答案 0 :(得分:2)
您正在注册一个触发任何AJAX调用的全局事件处理程序。代码并没有对上下文进行区分。
不幸的是,you can't access the details of the AJAX request from the ajaxStart
handler。否则,我建议将blockUI: true
之类的额外选项传递给处理程序随后将使用的请求。
相反,您必须将$.blockUI({...});
的代码移动到辅助函数中(因此您不必每次都编写它)。现在,每次进行要阻止UI的AJAX调用时,都必须调用此辅助函数。调用新辅助函数的好地方是the beforeSend
callback。