我有一个想要传递给.fadeOut()
的对象。
在我们开始之前,我可以将对象传递给.click():
this.$title.click({story: this}, function (event){
var story = event.data.story;
}
足够简单。
现在我想用.fadeOut
做类似的事情:
this.$title.fadeOut("fast", {story: this}, function(){
var story = ???
});
哪个不起作用。但你明白了吗?如何将this
传递给匿名函数?
我正在寻找最干净的解决方案。除此之外,我正在寻找与.click()
所做的最相符的解决方案。
谢谢!
ASIDE:是否有更简洁的方法将this
传递给.click()
?
答案 0 :(得分:5)
这是一个关于JS的问题,而不是关于jQuery的问题;你可以这样做:
var story = this
this.$title.click(function () {
/* story still available */
})
this.$title.fadeOut('fast', function () {
/* same here */
})
或者更奇特的东西(这也保留了story
在分配时的内容,即使它在后面的上部范围被覆盖了):
this.$title.click((function (story) {
return function () {
/* story is available */
/* this will be passed to $(...).click(...) */
}
})(this))
答案 1 :(得分:2)