执行jQuery post时屏蔽整个页面?

Đin*_*hâu 3 ajax jquery

在jQuery中,当我们执行每个Ajax帖子时,有没有办法自动屏蔽整个页面(以防止用户输入或双重提交......)?我看到这个插件:jQuery-blockUI(http://www.malsup.com/jquery/block/)但是我们仍然需要为每个Ajax帖子手动屏蔽/取消屏蔽.
正如我在ExtJS中所知,我们可以通过实现"beforeAction"函数来控制它,因为这个事件将在表单上的任何操作之前被触发,但是在jQuery中我没有找到类似的东西.
你能帮我解决一个问题吗?非常感谢.

小智 5

自己做这件事并不难.

HTML

<body>
     <div id="mask"></div>
     <!-- Everything else -->
</body>
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

JAVASCRIPT

var isPageMasked = false,
    mask = $('#mask');

var maskPage = function(){

    if(isPageMasked){
        mask.hide();
    } else {
        mask.show();
    }

    isPageMasked = !isPageMasked;

};
Run Code Online (Sandbox Code Playgroud)

然后,当您想要屏蔽和取消屏蔽页面时,您只需调用maskPage().