禁用屏幕上的任何点击,并在一段时间或事件后启用它

Disable any clicks on screen and enable it after some time or event

本文关键字:一段时间 事件 启用 屏幕 任何点      更新时间:2023-09-26

我在我的应用程序中使用PhoneGapjQuery Mobile。我的问题是,当我从页面A导航到页面B一键点击一切都OK,但是当我双击页面A然后传递到下一个屏幕(B页),此时用户是看不到的……第二次点击传递到页B,页B尝试执行页A中按下的操作。

任何想法如何禁用页面B上的任何点击,并激活它后事件或页面加载为100%?

不是特定于jQuery Mobile,但你可以弹出一个"click prevention"div来拦截任何你不想处理的事件。

创建一个样式如下的DIV:

position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
width: 100%; height: 100%;
background-color: transparent;
z-index: 999999;
transform: translateZ(999999px);
display: none;

然后当你需要防止任何与应用程序的交互,改变div的样式从display:nonedisplay:block。瞧,即时点击防止。

当然,不要忘记从DOM中删除它或将其切换回display:none -否则你的用户将无法再与应用程序交互

或者,如果你能在处理事件时阻止浏览器的默认值,效果也很好。不确定jQuery移动如何做到这一点,但它很容易像锤子(Hammer(element, {prevent_default: true}.on("tap", event_handler);)如果可能的话,这是我要走的方式,因为它避免触摸DOM(这可能会触发回流)。但如果你不能让它以其他方式工作,第一个方法应该工作,即使有点丑。