禁用屏幕上的任何点击,并在一段时间或事件后启用它
Disable any clicks on screen and enable it after some time or event
我在我的应用程序中使用PhoneGap
和jQuery 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:none
到display:block
。瞧,即时点击防止。
当然,不要忘记从DOM中删除它或将其切换回display:none
-否则你的用户将无法再与应用程序交互
或者,如果你能在处理事件时阻止浏览器的默认值,效果也很好。不确定jQuery移动如何做到这一点,但它很容易像锤子(Hammer(element, {prevent_default: true}.on("tap", event_handler);
)如果可能的话,这是我要走的方式,因为它避免触摸DOM(这可能会触发回流)。但如果你不能让它以其他方式工作,第一个方法应该工作,即使有点丑。
相关文章:
- Canvas+svg路径动画,在路径中的特定点暂停一段时间,然后继续
- 收集一段时间内的EMG数据.建议JS
- 在一段时间内切换文本
- 如何停止字幕文本一段时间,然后继续
- HTTP服务器在一段时间后停止(Node.js)
- Hammer.js过了一段时间就停止工作了
- Meteor-在一段时间内解锁模板(按日期)
- 画布在一段时间后开始滞后
- JS-在一段时间后水平移动图像
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- 表单提交在一段时间循环PHP,jquery
- 一段时间后生成回发
- Vanilla Js:在一个事件中开始一段时间的循环,然后用第二个事件打破它?('mouseover'启
- 如何从服务器倒计时并在一段时间后触发事件
- 事件侦听器会根据一段时间内的点击次数更改变量
- 在RxJS中,对一段时间内的事件进行计数,并每秒产生一次总和
- 过一段时间后观察mouseenter事件
- 在一段时间内禁用单击事件处理程序
- 猫鼬重新连接事件在一段时间后没有被触发
- 是否有办法在一段时间后刷新DOM,而不需要单击或任何其他事件?