Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除<;部门>;超时后由Javascript添加_Javascript_Jquery_Settimeout - Fatal编程技术网

删除<;部门>;超时后由Javascript添加

删除<;部门>;超时后由Javascript添加,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我已经通过了许多关于SO(包括和)的例子来尝试解决我遇到的一个问题 使用下面的脚本,我在页面上添加了一个带有“旋转”图像的覆盖图,以向用户指示在他们单击按钮后系统正在忙于处理 ACME.global = ACME.global ? ACME.global : { init: function() { $(".ctaButton").bind("click", this.pageLoadingOverlay); }, pageLoadingOverlay :

我已经通过了许多关于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
的各种组合,但运气不佳


非常感谢您的帮助

超时函数没有很好地构建

试试这个:

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

setTimeout("javascript function",milliseconds);
setTimeout()方法将等待指定的毫秒数,然后执行指定的函数

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

第二个参数指示从现在起,您要执行第一个参数的毫秒数


正如我在评论中所说的,代码

您在JS控制台中是否看到任何错误?您使用的是哪种浏览器?您的代码运行得很好是jsbin(),我想您的问题出在其他地方。在控制台中没有看到任何错误。我的大部分测试都是在Firefox和Chrome(更易于使用的开发工具)上进行的。@ybo:谢谢你指出显而易见的问题!结果发现,我错误地输入了与
onClickPageOverlay
相关联的样式,因此,虽然它确实有效,但我从未看到效果。当我“删除”超时时,我用“撤消”完成了这项操作,这也消除了我的键入错误。请加上你的评论作为回答,这样我就可以接受了。这个回答有点自相矛盾吗?您说“setTimeout()的第一个参数应该是一个函数”,但在您给出的示例中,第一个参数实际上是一个字符串。也不建议将setTimeout与字符串一起使用,原因如下:代码确实工作正常。问题是JavaScript添加的样式类类型错误。