BlockUI on DOM Ready

拈花ヽ惹草 提交于 2019-12-22 17:54:41

问题


I'm using the jQuery BlockUI plugin to add a loading splash to a page that takes a few seconds to load due to CAML queries. The problem is, the page loads before then the BlockUI displays for a split second and disappears. It seems like JS is executing these in the wrong order and I cannot figure out why. Is there something I can change in the code or is BlockUI just not intended to be used without Ajax?

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

In the html header I call jquery, blockui, and the common.js script that contain the CAML queries and load the page elements (in that order). The common.js script is also run on DOM ready, which I suspect may be part of the problem...


回答1:


Try this:

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

This should block the UI way before anything else has been loaded.

Edit: Okay, I've bothered to actually look it up … $.blockUI supports a callback function.

So, you could/should do this:

$(document).ready(function() {
    $.blockUI({
        onBlock: function() { 
            // Invoke your CAML stuff here.
        }
    });
});


来源:https://stackoverflow.com/questions/7715192/blockui-on-dom-ready

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!