开发者社区> 问答> 正文

setTimeout里的this指向什么?

   var i = -1;
            $pics.each(function(){
                $this = $(this);
                i++;
                setTimeout(function(){
                    console.log($this);//这里的$this指向jQuery对象集合的最后一个对象
                    $this.animateCss('zoomIn');
                }, 200*i);
            });
            
$pics是一个jQuery对象集合,那么setTimeout里面的$this指向哪里?上下两段代码的$this为什么不一样?

        var i=-1;
        $(".demo_scale").each(function() {
            var $this=$(this);
            if(!$this.hasClass("b_to_t")){
                i++;
                setTimeout(function(){
                    console.log($this);//这里的$this是指向第三行的$this的
               $this.addClass("b_to_t");
               },200*i);
            }
        });

展开
收起
a123456678 2016-03-11 17:18:13 2005 0
1 条回答
写回答
取消 提交回答
  • 代码你这样写的话
    $this指向jQuery对象集合中的最后一个jQuery对象

    2019-07-17 18:59:41
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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