如何暫時禁用JavaScript中的所有事件?我們希望讓它們停用,以便某些事件在我們點擊某些內容後700毫秒後才能運行。暫時停用javascript中的所有事件
2
A
回答
8
如果你想那麼簡單的方式暫時禁用所有點擊,要做到這一點不改變任何您的網頁或代碼的其餘部分是把一個透明的div絕對定位在整個頁面攔截並停止所有點擊事件的傳播。然後,使用setTimeout()以您想要的任何時間間隔刪除該透明div。
將blockDiv放入您的頁面HTML中,以便它已經存在。
在您的HMTL:
<body>
<div id="blockDiv"></div>
... other page HTML here
</body>
然後,讓這個CSS的網頁:
#blockDiv {
position: absolute;
left: 0;
right: 0;
height: 100%;
width: 100%;
z-index: 999;
}
而且,這javacript:
$("#blockDiv").click(function(e) {
// stop propagation and prevent default by returning false
return false;
});
setTimeout(function() {
$("#blockDiv").remove();
}, 700);
1
使用的setTimeout
$('a').click(function(e){
e.preventDefault();
setTimeout(function(){
// DO SOMETHING AFTER 700ms
},700);
});
1
setTimeout
是你想要的。
setTimeout()方法在指定的毫秒數後調用函數或評估表達式。
它有兩個參數:
1)函數或代碼來調用和
2)的毫秒數執行代碼/功能之前等待。
setTimeout(function(){
//do your stuff
},700);
1
在這個ARTICAL看看,這將顯示如何懶洋洋地聆聽快速射擊事件
$.fn.bindDelayEvent = function(eventName, delay, fnc){
$this = $(this);
var timer = undefined;
var delayFnc = function(){
clearTimeout(timer);
var self = this;
var args = arguments;
timer = setTimeout(function(){
fnc.apply(self, args);
}, delay);
}
$this.bind(eventName, delayFnc);
}
$(window).bindDelayEvent("resize", 1000, function() {
alert("click event fires after 1000ms")
});
How to listen lazily to rapidly firing events like window resize?
0
禁用頁面上的所有事件,是很容易的。難的部分是在需要時恢復它們。
document.body.innerHTML = document.body.innerHTML;
這將通過用DOM的「處女」副本替換DOM來有效地移除綁定到DOM節點的所有事件。
大部分時間用戶甚至不會注意到重繪。
至於在一段時間後恢復它們,你可以用更換的innerHTML之前保存DOM的副本實驗:
oOldDom = document.cloneNode(1);
,後來恢復它。
相關問題
- 1. 暫停所有javascript
- 2. 暫停JavaScript的keydown事件
- 3. 暫時停用touchstart事件
- 4. 使用JavaScript暫停所有Vimeo視頻?
- 5. 如何在JavaScript中暫停事件?
- 6. 的Javascript暫停循環事件
- 7. pthread - 暫停/暫停所有線程
- 8. Javascript暫停所有其他Vimeo視頻
- 9. JavaScript,暫停/恢復window.load事件
- 10. Javascript調試:單擊事件暫停
- 11. 發生事件時暫停任務
- 12. Cordova:暫停事件沒有觸發
- 13. HTML5和JavaScript暫停所有視頻時滾動
- 14. 區分MPMovieplayer中的暫停事件
- 15. 所有主題被暫停
- 16. 暫停事件與C#
- 17. wxGLCanvas暫停繪製事件?
- 18. JavaScript:暫停計時器
- 19. 爲什麼沒有暫停音頻如果暫停事件使用淘汰賽
- 20. 有條件暫停Javascript等待ajax
- 21. 如何停止visual studio去program.cs(暫停所有)暫停按鈕
- 22. JavaScript停止暫停
- 23. 暫時禁用所有onclick事件並將其綁定回
- 24. Qt - 暫時禁用所有事件或窗口功能?
- 25. 暫停或停止所有bgworkers vb.net
- 26. JavaScript中的暫停功能
- 27. JavaScript中的循環暫停
- 28. C#選擇列表框中的所有項目 - 暫停事件處理
- 29. JavaScript Timer暫停
- 30. Javascript暫停