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