在jQuery中,当我们执行每个Ajax post时,有没有办法自动屏蔽整个页面(以防止用户输入或双重提交...)?我看到了这个插件: jQuery-blockUI (http://www.malsup.com/jquery/block/),但我们仍然需要为每个Ajax帖子手动屏蔽/取消屏蔽。
据我所知,在ExtJS中,我们可以通过实现"beforeAction“函数来控制这一点,因为此事件将在表单上的任何操作之前触发,但在jQuery中我找不到任何类似的东西。
你能给我一个解决这个问题的办法吗?非常感谢。
发布于 2012-11-02 01:10:43
您可以只使用beforeSend和complete函数
$.ajax({
beforeSend: function() {
//Mask page
},
complete: function(){
//remove Mask
}
}
});发布于 2012-11-02 01:03:28
自己做这件事不会太难。
HTML
<body>
<div id="mask"></div>
<!-- Everything else -->
</body>CSS
#mask{
position:fixed;
width:100%;
height:100%;
background: /* You can make this slightly transparent black rgba(0,0,0,.3); or transparent */;
top:0;
left:0;
display:none;
}JAVASCRIPT
var isPageMasked = false,
mask = $('#mask');
var maskPage = function(){
if(isPageMasked){
mask.hide();
} else {
mask.show();
}
isPageMasked = !isPageMasked;
};然后,当您想屏蔽和取消屏蔽页面时,只需调用maskPage()即可。
https://stackoverflow.com/questions/13181912
复制相似问题