chrome js写在css控制后面却先执行了 火狐的是先css,再执行了alert

代码的意思应该是 先变成红色,再弹1。但是现在反过来了。。。

<style>


    #box{

        width: 100px;

        height: 100px;

        background-color: #7FFFD4;

    }

</style>

<body>

    <div id="box"></div>

    <button>123123</button>

    

</body>

<script>

    $("button").click(function() {

        $("#box").css("background-color", "red");

        alert(1)

    })

</script>


Smart猫小萌
浏览 983回答 2
2回答

冉冉说

执行顺序其实没错,只是 alert() 会阻塞页面更新。$("#box").css("background-color", "red") // 这行先执行了alert(1) // 弹出框,页面不更新了,此时 css 其实已经改了,但是页面没有更新所以你看不到变成红色补充解决方法很简单,用 setTimeout 就行了$("#box").css("background-color", "red")setTimeout(() => {&nbsp; alert(1)}, 0)

尚方宝剑之说

firefox,IE 11 上没问题,opera 和 chrome 有问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript