0

我已经通过一些关于 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 事件似乎不再绑定到脚本。

我尝试了各种组合,setTimeoutdelay没有运气。

非常感谢任何帮助。

4

2 回答 2

0

超时功能不是很好构建。

试试这个:

var t=setTimeout("$('#onClickPageOverlay').remove()",30000);

文档:

setTimeout("javascript function",milliseconds);

setTimeout() 方法会等待指定的毫秒数,然后执行指定的函数。

setTimeout() 的第一个参数应该是一个函数。

第二个参数表示从现在开始执行第一个参数需要多少毫秒。

于 2012-07-20T06:34:37.083 回答
0

正如我在评论中已经说过的那样,代码工作得很好。

于 2012-07-21T09:02:58.753 回答