一种将变量传递给嵌套函数的方法

kjo*_*876 2 javascript

有没有办法可以将信息传递给嵌套函数?问题是我想使用jQuery动画一个被删除的对象,然后让它从dom中删除对象.但是没有办法将信息传递给嵌套函数.我首先虽然波纹管会工作,但没有运气,

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

人们建议我将元素存储在全局中,这个函数是类的一部分,并且可以有许多对象可以同时调用这个函数.

谢谢!

Fla*_*ino 9

使用闭包你应该能够做到

var tab = this.tab
$(tab).effect('drop', null, null, function() { $(tab).remove(); });
Run Code Online (Sandbox Code Playgroud)

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

附录:我不是一个jQuery人(很奇怪,我知道),但我想你传递给的函数effect()将在tab元素的上下文中执行(即函数内部this指的是tab元素).如果是这样,你可能就是这么做的

$(this.tab).effect('drop', null, null, function() { $(this).remove(); });
Run Code Online (Sandbox Code Playgroud)