【问题标题】:BlockUI on DOM ReadyDOM 上的 BlockUI 就绪
【发布时间】:2011-10-10 15:33:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: jquery document-ready blockui


    【解决方案1】:

    试试这个:

    <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.
            }
        });
    });
    

    【讨论】:

    • 好吧,我不需要那刻薄的评论——这并不是我自己没有费心去阅读文档——但是你的建议很有效。谢谢。
    • @kramden88 我不是故意要听起来很尖刻;)很高兴它对你有用。
    • 我已经为此苦苦挣扎了好几天!谢谢!像你一样懒惰阅读:)
    • @vzwick 它在 IE8 中无法正常工作。阻止页面,但在脚本完成加载之前根本不显示 Div 消息。 IE8 的任何解决方法?
    猜你喜欢
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2014-03-29
    • 2021-09-16
    • 2015-03-04
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多