javascript - jQuery 更改回调上下文

标签 javascript jquery

我想知道如何更改 jQuery 回调函数的上下文,以便 this 与父函数中的相同。

看下面的例子:

var context = this;
console.log(context);

element.animate(css, speed, type, function () {
     var new_context = this;
     console.log(new_context);
});

如何使 new_context 等于 context

我意识到我可以做到这一点:

var new_context = context;

但是有没有更好的方法来告诉函数使用不同的上下文?

最佳答案

您可以利用闭包:

var context = this;
console.log(context);

element.animate(css, speed, type, function () {
     var new_context = context; // Closure
     console.log(new_context);
});

您还可以这样做:

// First parameter of call/apply is context
element.animate.apply(this, [css, speed, type, function () {
     var new_context = this;
     console.log(new_context);
}]);

关于javascript - jQuery 更改回调上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14212414/

相关文章:

javascript - Minitest 的 assert_select 的 capybara 等价物是什么?

javascript - jQuery/JavaScript - 根据选择选项更改另一个 div 中的图像

jQuery — 使用 .delay() 推迟 .load()?

javascript - 在javascript中全局使用ajax调用下的变量

javascript - 如何使用 Bootstrap 中的 View 端口在移动 View 和桌面 View 之间切换?

javascript - 查找月份在 JavaScript 循环中出现五次的时间(日期、字符串)

javascript - JavaScript Canvas toDataURL安全注意事项

jquery - 使用 jquery 设置输入样式

javascript - 在 React-Admin 中保存来自自定义组件的更改

javascript - 思维扭曲暗示 this.var 访问