setTimeout方法的工作原理很奇怪

The setTimeout method works strangely

本文关键字:方法 工作 setTimeout      更新时间:2023-12-15

我创建了一个方法,让用户等待一段时间。(等待窗口)

function hideMe()                                                                
{                                                                                
  document.getElementById('rotate').style.visibility= "hidden";                       
}                                                                                
function showMe()                                                                
{                                                                                
 document.getElementById('rotate').style.visibility= "visible";                    
}                                                                                
function wait()                                                                
{                                                                              
  showMe();                                                                   
  setTimeout(hideMe, 2000);   // To show certain window for 2 seconds         
}                                                                              

但窗口只是闪烁,即使我增加了更长的时间。它没有太大的改善。

  1. 为什么?

  2. 替代方法是什么
    对不起,我不能在这个项目中使用jQuery。

更新很抱歉我使用visibility而不是display,但它仍然无法工作。我发现我会在命令wait()之后向服务器发送一些请求,这会影响setTimeout()

类似:

wait();
httpReq();

如果我添加alert("after wait()")类似:

wait();
alert("after");

wait()之后不会执行警报;

在代码中使用

document.getElementById('rotate').style.display= "visible";

其中显示不具有"可见"属性。您必须使用"block"或"inline"。也可以将display属性设置为空。

document.getElementById('rotate').style.display= "";

检查这是否有帮助。根据OP的意见

setTimeout不是同步命令。如果您希望在执行setTimeout之后执行某些内容。您必须将其添加到setTimeout函数中。例如

setTimeout(function(){hideMe();alert("test");}, 2000);