这个判断为什么不生效呢if($(".a").css("width") == 100){}

为什么这个判断不生效呢?我是想判断这个$(".a") 宽度是否为100px,是不是哪里写错了?

$(function(){
    $(".a").animate({width:"100px"},3000);
    if($(".a").css("width") == 100){
        console.log("100");
    }
})

我刚刚解决了····  animate(style,speed,callback),写在animate里面就可以
阅读 2.6k
2 个回答

首先 JavaScript 是异步加载,你那动画是3秒之后才加载的,所以宽度不会是100px,你只要加个定时器就可以了; 第二 你比较的时候少了单位 ‘px’, 修改后的代码如下

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <script src="jquery-1.9.1.min.js"></script>
    <title>Document</title>
</head>

<body>
    <div class="a">
    </div>
</body>

</html>
<script>
$(function() {
    $(".a").animate({
        width: "100px"
    }, 3000);
    // console.log($(".a").css("width"))

    setInterval(function() {
        if ($(".a").css("width") == '100px') {
            console.log("100");
        }
    }, 3000)

})
</script>

这就是javascript老是看到callback 的原因,
它的代码不就按你以为了顺序执行完再执行下一句的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题