setTimeout方法很奇怪

时间:2015-02-16 09:45:36

标签: javascript modal-dialog settimeout

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

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,抱歉。

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

    像:

    wait();
    httpReq();
    

    如果我添加alert("after wait()") 喜欢:

    wait();
    alert("after");
    

    wait();

    后不会执行提醒

1 个答案:

答案 0 :(得分:2)

您正在使用的代码中的

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

显示器没有"可见"属性。 您必须使用"阻止","内联"。 或者您也可以将display属性设置为空白。

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

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

setTimeout不是同步命令。如果你想在执行setTimeout之后执行某些操作。您必须将其添加到setTimeout函数。对于Eg

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