JavaScript函数在睡眠时未按正确顺序执行

JavaScript函数在睡眠时未按正确顺序执行,javascript,html,Javascript,Html,我想隐藏一个元素,并在一秒钟后显示一个新元素 以下是简化代码: 函数睡眠(毫秒){ var start=new Date().getTime(); 对于(变量i=0;i毫秒){ 打破 } } } 函数loadNewSubmenu() { document.getElementById(“content-1”).className=“隐藏部分”; 睡眠(1000); document.getElementById(“content-2”).className=“show part”; } 。隐藏

我想隐藏一个元素,并在一秒钟后显示一个新元素

以下是简化代码:

函数睡眠(毫秒){
var start=new Date().getTime();
对于(变量i=0;i<1e7;i++){
如果((新日期().getTime()-start)>毫秒){
打破
}
}
}
函数loadNewSubmenu()
{
document.getElementById(“content-1”).className=“隐藏部分”;
睡眠(1000);
document.getElementById(“content-2”).className=“show part”;
}
。隐藏零件{
显示:无;
}
B1
地下二层
单击我
只需使用

函数loadNewSubmenu(){
document.getElementById(“content-1”).className=“隐藏部分”;
setTimeout(函数(){
document.getElementById(“content-2”).className=“show part”;
}, 1000)
}
。隐藏零件{
显示:无;
}
B1
地下二层

单击我
使用设置超时而不是睡眠

函数loadNewSubmenu()
{
document.getElementById(“content-1”).className=“隐藏部分”;
setTimeout(函数(){document.getElementById(“content-2”).className=“show part”},1000);
}
。隐藏零件{
显示:无;
}
B1
地下二层

单击我
您可以使用
设置超时()以下是一个示例:`

<script>
    function loadNewSubmenu()
        {
            document.getElementById("content-1").className = "hide-part";

            setTimeout(function(){
                document.getElementById("content-2").className = "show-part";
            },1000);
        }
</script>`

函数loadNewSubmenu()
{
document.getElementById(“content-1”).className=“隐藏部分”;
setTimeout(函数(){
document.getElementById(“content-2”).className=“show part”;
},1000);
}
`

不要使用
睡眠
而是
设置超时
。你有两个相同ID的元素,这是错误的。可能重复的可能重复的或@Andreas实际上我只是想知道为什么JavaScript先执行
sleep()
,然后执行
document.getElementById().classname
,我问错了question@Aria我问错了这个问题,我想知道为什么JavaScript执行sleep()首先是document.getElementById().classname