javascript - 如何将变量传递给 jQuery 的 .fadeOut()

标签 javascript jquery

我有一个对象想要传递给 .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 传递到 anon 函数中?

我正在寻找最干净的解决方案。除此之外,我正在寻找最符合我对 .click() 所做的事情的解决方案。

谢谢!

旁白:是否有更简洁的方法将 this 传递到 .click() 中?

最佳答案

这是一个关于 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))

关于javascript - 如何将变量传递给 jQuery 的 .fadeOut(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30927559/

相关文章:

javascript - 如何将两点之间的线从曲线更改为具有一个 Angular 点的直线

c# - 为什么我应该创建异步 WebAPI 操作而不是同步操作?

javascript - CSS - 导航菜单悬停导致闪烁效果

javascript - 使用 Angular Directive(指令)切换单个项目

javascript - 当用户拖动并进行选择并获取所选文本时调用函数

javascript - 将列表中 `li` 的颜色更改为平均图像颜色

c# - 选择列表选项有一些意想不到的值

javascript - 如何在 javascript 中编写 css 代码? (未捕获类型错误 : Cannot set property "height" of undefined)

javascript - 'class' 语法在 javascript 中如何工作?

jquery - Struts2 jQuery 网格数据未加载