将$(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(); }); }