Jquery 防止用户在加载页面时执行任何操作

Jquery 防止用户在加载页面时执行任何操作,jquery,jquery-mobile,Jquery,Jquery Mobile,我有一个选项卡式web应用程序,我还创建了页面转换前的图像缓存,因此当用户转到某个页面时,我确保在转换到该页面之前下载所有图像 当我点击一个有很多图像的选项卡时,我会显示一个微调器,并开始在后台下载图像,然后在它完成后,我会显示页面 但我想在执行此操作时冻结任何用户输入或点击。那么,冻结和解冻整个页面的最佳方法是什么呢?用顶级透明/半透明覆盖层覆盖界面应该可以阻止其下元素的事件 但是,这样做会使用户失去UI控制。此JQuery代码可以禁用页面上的元素: $("body").find("*").a

我有一个选项卡式web应用程序,我还创建了页面转换前的图像缓存,因此当用户转到某个页面时,我确保在转换到该页面之前下载所有图像

当我点击一个有很多图像的选项卡时,我会显示一个微调器,并开始在后台下载图像,然后在它完成后,我会显示页面


但我想在执行此操作时冻结任何用户输入或点击。那么,冻结和解冻整个页面的最佳方法是什么呢?

用顶级透明/半透明覆盖层覆盖界面应该可以阻止其下元素的事件


但是,这样做会使用户失去UI控制。

此JQuery代码可以禁用页面上的元素:

$("body").find("*").attr("disabled", "disabled");
$("body").find("a").click(function (e) { e.preventDefault(); });
此JQuery代码将再次启用元素:

$("body").find("*").removeAttr("disabled");
$("body").find("a").unbind("click");

您可以使用一个预定义的jQuery UI,名为

或者简单地添加一个分区,该分区将阻止身体,并在身体加载时淡出

<div id="div">
    <h1>Please Wait..</h1>
</div>
这是一个有效的例子。页面将被阻止,直到图像完全加载

我使用:

$(window).bind('load', function() {
    // code here
});
在页面未完全加载之前,不会触发此事件。因此,您可以调用一个函数来解锁页面的元素

享受:)

$(window).bind('load', function() {
    // code here
});