繁体   English   中英

setTimeout方法工作异常

[英]The setTimeout method works strangely

我创建了一种让用户等待特定时间的方法。 (等待窗口)

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”。 或者您也可以将显示属性设置为空白。

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

检查是否有帮助。 根据OP的评论

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM