开发者社区 问答 正文

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 2119 分享 版权
1 条回答
写回答
取消 提交回答
  • 代码你这样写的话
    $this指向jQuery对象集合中的最后一个jQuery对象

    2019-07-17 18:59:41
    赞同 展开评论
问答分类:
问答地址: