javascript - setTimeout里的this指向什么?
本文介绍了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屋!
查看全文