将$(this)传递给jQuery中的回调?

我有两个效果,我想一个接一个地运行,但我无法弄清楚如何将$(this)传递给第一个效果的回调。

这就是我现在所拥有的:

 if($(this).hasClass('flag')) { $('someElement').slideUp(); $(this).slideDown(); } 

但我想要的是在slideUp完成后运行slideDown,即。

 if($(this).hasClass('flag')) { $('someElement').slideUp(function() { $(this).slideDown(); }); } 

除了那个阶段的$(this)现在指的是someElement ,因此不能按计划工作。

我如何引用我原来的element.flag 。 我尝试使用$this = $(this)但我认为我的语法必须错误。

有任何想法吗?

保存参考。

 if($(this).hasClass('flag')) { var el = this; $('someElement').slideUp(function() { $(el).slideDown(); }); } 

像这样缓存… 只是不要忘记 var

 var $this = $(this); if($this.hasClass('flag')) { $('someElement').slideUp(function() { $this.slideDown(); }); } 

给这个镜头:

 var self = $(this); if(self.hasClass('flag')) { $('someElement').slideUp(function() { self.slideDown(); }); }