2

我正在使用 jQuery BlockUI 插件将加载启动画面添加到由于 CAML 查询而需要几秒钟才能加载的页面。问题是,页面加载之前BlockUI 显示一瞬间然后消失。似乎 JS 以错误的顺序执行这些,我不知道为什么。我可以在代码中更改什么,还是 BlockUI 不打算在没有 Ajax 的情况下使用?

$(document).ready(function() {
    $.blockUI();
});
$(window).ready(function() {
    $.unblockUI();
});

在 html 标头中,我调用 jquery、blockui 和 common.js 脚本,其中包含 CAML 查询并加载页面元素(按此顺序)。common.js 脚本也在准备好的 DOM 上运行,我怀疑这可能是问题的一部分......

4

1 回答 1

3

试试这个:

<html>
    <head>
        <script src="jquery.js"></script>
        <script src="blockui.js"></script>
        <script type="text/javascript">
            $.blockUI();
        </script>
    </head>
    <body>
        …
    </body>
</html>

这应该在加载其他任何内容之前阻止 UI 方式。

编辑:好的,我已经费心去查了……$.blockUI支持回调函数。

所以,你可以/应该这样做:

$(document).ready(function() {
    $.blockUI({
        onBlock: function() { 
            // Invoke your CAML stuff here.
        }
    });
});
于 2011-10-10T15:49:14.443 回答