Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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/jQuery:如何在重定向前正确使用setTimeout_Javascript_Jquery_Settimeout - Fatal编程技术网

JavaScript/jQuery:如何在重定向前正确使用setTimeout

JavaScript/jQuery:如何在重定向前正确使用setTimeout,javascript,jquery,settimeout,Javascript,Jquery,Settimeout,我是JS新手,希望有人能帮我 我正在尝试淡出一个div,然后等待两秒钟,然后重定向到另一页 到目前为止,我有以下内容,它根据需要执行重定向,但我认为我没有正确使用setTimeout,因为重定向总是立即发生,与我为超时设置的值无关 有人能告诉我如何组合这些,以便JS在重定向之前等待吗?如果可能的话,我想使用setTimeout而不是delay等 setTimeout(function(){ $(that).closest('div.boxBlueOuter').fadeOut(), 2000 }

我是JS新手,希望有人能帮我

我正在尝试淡出一个div,然后等待两秒钟,然后重定向到另一页

到目前为止,我有以下内容,它根据需要执行重定向,但我认为我没有正确使用setTimeout,因为重定向总是立即发生,与我为超时设置的值无关

有人能告诉我如何组合这些,以便JS在重定向之前等待吗?如果可能的话,我想使用
setTimeout
而不是delay等

setTimeout(function(){ $(that).closest('div.boxBlueOuter').fadeOut(), 2000 });
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
多谢各位, Mike可以接受回调,这就是它的样子

.fadeOut([持续时间][,完成])

首先使用淡出,在回调中超时2秒,然后重定向。 像这样的事情应该可以

$(that).closest('div.boxBlueOuter').fadeOut(function(){
  setTimeout(function(){
    window.location.href = baseURL + '/index.php?lang=' + selectedLang;
  }, 2000);
});
可以接受回调,这就是它的样子

.fadeOut([持续时间][,完成])

首先使用淡出,在回调中超时2秒,然后重定向。 像这样的事情应该可以

$(that).closest('div.boxBlueOuter').fadeOut(function(){
  setTimeout(function(){
    window.location.href = baseURL + '/index.php?lang=' + selectedLang;
  }, 2000);
});

不幸的是,setTimeout不是实际EcmaScript规范的一部分,因此它的行为在执行环境中可能不一致

根据

Firefox中的setTimeout将在指定延迟后执行传入的函数。当前,您正在指定在2秒延迟后淡出。相反,您希望在2秒延迟后重定向,如下所示

$(that).closest('div.boxBlueOuter').fadeOut()

setTimeout(function(){window.location.href=baseURL+'/index.php?lang='+selectedLang;},2000)


但我建议使用标准化的东西,避免setTimeout。

不幸的是,setTimeout不是实际EcmaScript规范的一部分,因此它的行为在执行环境中可能不一致

根据

Firefox中的setTimeout将在指定延迟后执行传入的函数。当前,您正在指定在2秒延迟后淡出。相反,您希望在2秒延迟后重定向,如下所示

$(that).closest('div.boxBlueOuter').fadeOut()

setTimeout(function(){window.location.href=baseURL+'/index.php?lang='+selectedLang;},2000)


不过,我建议您使用标准化的设置,避免设置超时。

太棒了-非常感谢!正是我想要的。我会尽快接受。:)太棒了-非常感谢!正是我想要的。我会尽快接受。:)也非常感谢!你能给我一些关于“标准化”的提示吗?由于我是编程新手,它将帮助我从一开始就做好事情。:)当前的ECMAscript(标准化了最初被称为JavaScript的内容)标准位于此处。如果你是新来的,这可能对你没有多大好处,因为这是复杂的阅读。这是2015版(又名6)。大多数浏览器仍然只支持版本5。确定浏览器对特定功能的支持的一个很好的资源是,感谢这一点-我测试了您的代码,它工作正常,只是看起来您可能需要删除结尾处的一个小括号。关于浏览器支持,哪种现代浏览器会有setTimeout方法的问题?延迟是更好的选择吗?解释为什么setTimeout不是ECMAScript的一部分。@Dhirajbodichera:谢谢!也非常感谢!你能给我一些关于“标准化”的提示吗?由于我是编程新手,它将帮助我从一开始就做好事情。:)当前的ECMAscript(标准化了最初被称为JavaScript的内容)标准位于此处。如果你是新来的,这可能对你没有多大好处,因为这是复杂的阅读。这是2015版(又名6)。大多数浏览器仍然只支持版本5。确定浏览器对特定功能的支持的一个很好的资源是,感谢这一点-我测试了您的代码,它工作正常,只是看起来您可能需要删除结尾处的一个小括号。关于浏览器支持,哪种现代浏览器会有setTimeout方法的问题?延迟是更好的选择吗?解释为什么setTimeout不是ECMAScript的一部分。@Dhirajbodichera:谢谢!