javascript - 在 JQuery 方法中设置匿名函数的 'this' 上下文

标签 javascript jquery this jquery-events

我想通过以下点击绑定(bind)方法传递特定上下文:

$(document).ready(function(){

    var o = {
        name : 'I\'m object O'
    };

    $('#my-button').click(function(){
        alert(this.name);
    }.call(o));
});

问题是它会在页面加载后立即触发。有没有一种方法可以将上下文绑定(bind)到单击处理程序的匿名函数,并让它仅在触发单击事件时触发?您还可以解释为什么它是在页面加载而不是点击事件时触发的。

最佳答案

使用$.proxy

$("#my-button").click($.proxy(function () {
   alert(this.name);
}, o));

关于javascript - 在 JQuery 方法中设置匿名函数的 'this' 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14250466/

相关文章:

javascript - 从 jquery datepicker 计算日期

javascript - 看起来我的 javascript 中断了我的 css

javascript - 如何防止 "this"被事件处理程序反弹

javascript - 单击按钮后滚动到 div?

Javascript - 我需要相当于 jQuery 触发器点击 ID

javascript - 复选框 list 属性

jquery - 使用单独的 'button' jquery 向上滑动每个 div

javascript - 未捕获的类型错误 : Object [object global] has no method

javascript - 为什么在常规 IDE(如 Visual Studio 代码)上编译时 `this` 返回空对象?

c# - 具有 C# 背景的编写 JavaScript 的常见错误