我已经通过一些关于 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);
单击事件正确绑定到按钮并加载叠加层。问题是 UI 可能会卡在覆盖显示上(呈现页面的系统没有“刷新”或“返回”按钮,因此用户无法重新加载页面)。
但是,添加完整脚本后,onClick 事件似乎不再绑定到脚本。
我尝试了各种组合,setTimeout
但delay
没有运气。
非常感谢任何帮助。