我是JS的新手,希望有人能帮助我。
我正在尝试淡出div,然后等待两秒钟,然后将重定向到另一个页面。
到目前为止,我有以下内容根据需要进行重定向,但我认为我没有正确使用setTimeout,因为重定向总是立即发生,不依赖于我为超时设置的值。
有人能告诉我如何将这个结合起来以便JS在重定向之前等待吗?我想使用setTimeout
而不是延迟等,如果可能的话。
setTimeout(function(){ $(that).closest('div.boxBlueOuter').fadeOut(), 2000 });
// redirect to index page
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
非常感谢, 麦克
答案 0 :(得分:4)
.fadeOut()可以进行回调,这就是它的样子
.fadeOut([duration] [,complete])
首先使用fadeout并在回调中超时2秒然后重定向。 这样的事情应该做。
$(that).closest('div.boxBlueOuter').fadeOut(function(){
setTimeout(function(){
window.location.href = baseURL + '/index.php?lang=' + selectedLang;
}, 2000);
});
答案 1 :(得分:1)
setTimeout不是实际EcmaScript规范的一部分,因此它的行为在执行环境中可能不一致。
根据This
说 Firefox中的setTimeout将执行指定延迟后传入的函数。目前,您在延迟2秒后指定淡出。相反,您希望在2秒延迟之后重定向,如此
$(即).closest( 'div.boxBlueOuter')。淡出()
setTimeout(function(){window.location.href = baseURL +'/ index.php?lang ='+ selectedLang;},2000);
我建议使用标准化的东西并避免使用setTimeout。