当页面仍在使用 jquery 和 blockUI 插件加载时,如何阻止 UI?如果页面是使用 AJAX 调用加载的,我知道解决方法,但是当页面使用回发加载时,如何阻止 ui 直到页面完全加载完成?
请帮忙。非常感谢您的努力和时间。
输出 body 标签后,您需要立即触发 blockUI 插件。
而不是传统的:
<script type="text/javascript">
$(function (){
$("body").blockUI(options);
});
</script>
您需要忘记封闭$(function (){})
或$(document).ready(function (){})
您的脚本立即触发:
<script type="text/javascript">
$("body").blockUI(options);
</script>
建立并纠正 Seb 的答案。如果您要阻止 UI,请使用 .blockUI(),如果针对对象,请使用 .block()。我不相信你需要以 body 为目标,本质上这就是 blockUI 本身的功能。您确实需要在主体标签之后调用该函数......否则没有<body>
标签。如果您真的想在加载每个图像之前一直阻止 UI,请参阅最后一行。如果您只想加载页面内容,可以将解锁功能放在您熟悉的底部$(document).ready(function().
<script type="text/javascript">
$("body").block(options);
//--or--
$.blockUI(options);
</script>
<script type="text/javascript">
$(document).ready(function() {
$(window).load(function() { $.unblockUI(); }); //load everything including images.
//--or--
$.unblockUI(); //only make sure the document is full loaded, including scripts.
});
</script>
您可以尝试在禁用所有组件的情况下启动页面,然后在 PageLoad 事件中启用它们。另一个想法是放置一个隐藏所有页面的 CSS 类,并在加载时使用 JQuery 更改它。
问题在于引用 javascript 文件。
如果需要在 ASP.NET Ajax 页面中添加块 UI,请尝试在 ScriptManager 中包含 javascript 文件。
你试过这个吗?
<script type="text/javascript">
$(document).ready(function () {
$.blockUI(options);
});
</script>
最终对我有用的完整代码如下:
$("body").block({ message: '<h2>Loading...</h2>' });
$(document).ready(function () {
$("body").unblock();
});