有没有办法可以将信息传递给嵌套函数?问题是我想使用jQuery动画一个被删除的对象,然后让它从dom中删除对象。但是没有办法将信息传递给嵌套函数。我首先虽然波纹管会起作用,但没有运气,
tab = this.tab //this.tab is a dom element
$(this.tab).effect('drop',null,null, function(tab)
{
$(tab).remove()
})
人们建议我将元素存储在全局中,这个函数是类的一部分,并且可以有许多对象可以同时调用这个函数。
三江源!
答案 0 :(得分:9)
使用闭包你应该能够做到
var tab = this.tab
$(tab).effect('drop', null, null, function() { $(tab).remove(); });
请注意,tab
是在“嵌套函数”之外定义的,但由于JavaScript支持闭包,因此该函数可以访问在与自身相同的范围内定义的变量。换句话说,它将能够访问tab
。
另请注意,它是不是 this.tab
,因为this
指的是调用代码的上下文。
附录:我不是一个jQuery人(很奇怪,我知道),但我想你传递给effect()
的函数将在tab
元素的上下文中执行(即函数this
内部引用tab
元素。如果是这样,你可能只是做
$(this.tab).effect('drop', null, null, function() { $(this).remove(); });