[英]Remove <div> added by Javascript after timeout
我在SO上經歷了許多示例(包括本例和本例 ),以嘗試解決我遇到的問題。
使用下面的腳本,我在頁面上添加了帶有“旋轉”圖像的疊加層,以向用戶指示用戶單擊按鈕后系統正在忙於處理。
ACME.global = ACME.global ? ACME.global : {
init: function() {
$(".ctaButton").bind("click", this.pageLoadingOverlay);
},
pageLoadingOverlay : function(event) {
var body = document.getElementsByTagName("body");
var pageOverlay = document.createElement("div");
pageOverlay.id = "onClickPageOverlay";
body[0].appendChild(pageOverlay);
setTimeout(function() {
$('#onClickPageOverlay').remove();
}, 1000);
}
}
如果我沒有超時功能
setTimeout(function() {
$('#onClickPageOverlay').remove();
}, 30000);
click事件已正確綁定到按鈕,並且疊加層已加載。 問題在於UI可能會卡在疊加顯示上(呈現頁面的系統沒有“刷新”或“后退”按鈕,因此用戶無法重新加載頁面)。
但是,添加完整的腳本后,似乎onClick事件不再綁定到腳本。
我嘗試了setTimeout
和delay
各種組合,但沒有運氣。
任何幫助,不勝感激。
超時功能構建得不好。
嘗試這個:
var t=setTimeout("$('#onClickPageOverlay').remove()",30000);
說明文件:
setTimeout("javascript function",milliseconds);
setTimeout()方法將等待指定的毫秒數,然后執行指定的函數。
setTimeout()的第一個參數應該是一個函數。
第二個參數指示從現在開始要執行多少毫秒。
正如我已經在評論中指出的那樣,該代碼可以正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.