2011-07-21 39 views
2

有没有办法将信息传递到嵌套函数?问题是我想使用jQuery来动画一个对象被删除,然后让它从DOM中删除对象。但是没有办法将信息传递给嵌套函数。我第一次虽然波纹管会工作,但没有运气,将变量传递给嵌套函数的方法

tab = this.tab //this.tab is a dom element 
$(this.tab).effect('drop',null,null, function(tab) 
{ 
    $(tab).remove() 
}) 

人建议我存储在全球投放元素这个函数是一个类的一部分,并且可以有可能在调用这个函数许多对象同时。

谢谢!

+0

闭合内'this'是否指的是被动画的对象?在设置上下文时,jQuery非常聪明,在闭包中尝试'console.log'这个'this'。 –

回答

9

使用闭包你应该能够简单地做

var tab = this.tab 
$(tab).effect('drop', null, null, function() { $(tab).remove(); }); 

注意tab是“嵌套函数”定义之外,但由于JavaScript的支持关闭,该函数可以访问在同一范围内定义的变量本身。换句话说,它将能够访问tab。 还请注意,它是而不是this.tab,因为this指的是调用代码的上下文。

附录:我不是一个jQuery的家伙(奇怪,我知道),但我想像你传递给effect()功能将在tab元素的上下文中执行(即内部功能thistab元素)。如果是这样,你可能只是做

$(this.tab).effect('drop', null, null, function() { $(this).remove(); }); 
+0

谢谢你! JavaScripts的作用域让我感到困惑。另外我不是通常的jQuery人员,但是当涉及到需要快速开发时,jQuery库很有用! – kjones1876