javascript - setTimeout里的this指向什么?

查看:93
本文介绍了javascript - 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);
            }
        });

解决方案

代码你这样写的话
$this指向jQuery对象集合中的最后一个jQuery对象

这篇关于javascript - setTimeout里的this指向什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆