除非我首先显示警告,否则JQuery blockUI不起作用

时间:2017-01-29 17:13:30

标签: javascript jquery jquery-blockui

我遇到麻烦让JQuery blockUI工作。我正在使用此代码:

$.blockUI({
    message : null,
    overlayCSS : {
        backgroundColor : '#000000;',
        opacity : .4
    }
});

如果我只是调用上面的内容然后调用下面的sleep函数,我会得到以下行为: 5秒钟没有任何事情发生 块闪烁

var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > 5000) {
        break;
    }
}

如果我运行此代码:

alert("foo");
$.blockUI({
    message : null,
    overlayCSS : {
        backgroundColor : '#000000;',
        opacity : .4
    }
});
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > 5000) {
        break;
    }
}
alert("bar");

我得到以下行为:

  • 警报和阻止出现(我可以在清除警报之前无限期等待)

  • 当我清除警报按钮时,5秒内没有任何事情发生

  • 警报切换到“栏”消息

  • 当我解除警报

  • 时,警报和拦截器清除

1 个答案:

答案 0 :(得分:0)

我最后搬了#34;睡觉&#34;与服务器交互的一部分,并在客户端上使用类似的东西:

<header>
    <script language="javascript">
        function blockExample() {
            // block the ui
            $.blockUI({
                message : null,
                overlayCSS : {
                    backgroundColor : '#00f'
                }
            });
            // do the ajax call
            $.ajax({
                url : "${home}/action/wait/WaitAction?howLong=5000",
                type : "get",
                success : function(data) {
                    $.unblockUI();
                },
                error : function() {
                    alert("error");
                }
            });
        }
    </script>
</header>

<div align="center">
    <a href="javascript:blockExample()">Click me to block this page for 5 seconds</a>
</div>