开发者社区> 问答> 正文

setTimeout问题

<div id="tmp"><img src="http://s.segmentfault.com/img/logo.png"></div>
    <script>
    $("#tmp").hide();
    setTimeout(function(){
    $("#tmp").slideDown(2000);
},1000);
</script>

图片默认是hide隐藏的,setTimeout 1s后显示图片

我现在想1s后显示10s后再次隐藏
能否在slideDown(2000,callback)

callback在写个setTimeout函数变成这样

<div id="tmp"><img src="http://s.segmentfault.com/img/logo.png"></div>
    <script>
     $("#tmp").hide();
     setTimeout(function(){
      $("#tmp").slideDown(2000, setTimeout(function(){
      $("#tmp").slideUp(2000);
     },10000);
);
  },1000);
</script>

测试是失败的

展开
收起
小旋风柴进 2016-03-24 13:03:53 2032 0
1 条回答
写回答
取消 提交回答
  • 错误的:

    
    $("#tmp").hide();
    setTimeout(function() {
      $("#tmp").slideDown(2000, setTimeout(function() {
        $("#tmp").slideUp(2000);
      }, 10000););
    }, 1000);

    正确的:

    $("#tmp").hide();
    setTimeout(function() {
      $("#tmp").slideDown(2000, function(){
        setTimeout(function() {
          $("#tmp").slideUp(2000);
        }, 10000);
      });
    }, 1000);

    slideDown 第二个参数接受的是一个函数,而你直接写setTimeout当时就会执行,返回结果是一个整数(numerical ID of the timeout)

    2019-07-17 19:12:37
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载