jQuery - 从 jQuery 函数访问变量

标签 jquery

伙计们。我有这样的东西:

myThing = {
    str:"my string",
    setClick: function(){
        $("button").click(function(){
            alert(this.str);
        });
    }
}

myThing.setClick();

问题是当我单击按钮时,该函数不知道 str 是什么。 alert(str) 给我一个错误(str is not Defined)并且没有警报。 alert(this.str) 给我警报,但包含 undefined

我可以看到 this 引用了该按钮,并且该按钮没有任何名为 str 的属性。那么如何访问 jQuery 函数之外的 str 呢?

最佳答案

click 事件处理程序之外的 setClick 中保存对 this 的引用:

myThing = {
    str:"my string",
    setClick: function() {
        var self = this;
        $("button").click(function() {
            alert(self.str);
        });
    }
}

<强> DEMO

关于jQuery - 从 jQuery 函数访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12110267/

相关文章:

javascript - 从 2 个字段中获取值并在第三个字段中显示乘法

jquery - 包含库 (jQuery)

javascript - 加载事件选项卡页面源的 Chrome 扩展程序

javascript - twitter typeahead.js process() 使用未定义填充列表

jquery - 缺少 CORS header 'Access-Control-Allow-Origin'

javascript - 如何切换单行 <td> 标记内输入的可见性

javascript - jQuery Animate 顶部(从底部到顶部)

javascript - 用于用户登录/注册的 Django 模式 - 表单渲染问题

jquery 终端模板,我需要在右上角有一个持久的 DOM 元素

javascript - 无法在移动设备上隐藏子菜单并在点击时显示