jQuery UI Widget Factory 获取当前小部件的上下文

标签 jquery jquery-ui widget jquery-ui-widget-factory

使用 jQuery UI 小部件工厂模式创建小部件后,是否存在对小部件本身的全局引用?

我尝试过将小部件变量设置为等于小部件:

$.widget("my.widget", {
  _widget: this,
  _create: function () {
    // _widget should == the whole widget
  }
});

我还尝试通过 jQuery 获取小部件的上下文,例如:

$.widget("my.widget")

我不知道你应该如何在小部件内部回调该小部件。

最佳答案

在小部件方法内,您可以通过“this”关键字引用实例:

$.widget('my.widget', {
    foo: true,
    _create: function () {
        var foo = this.getFoo();
    },
    getFoo: function () {
        return this.foo;
    }

});

如果您在一个方法中并发现上下文已更改(编写 jQuery 时经常出现这种情况),那么您可以在本地变量中存储对“this”的引用:

$.widget('my.widget', {
    foo: true,
    _create: function () {
        var self = this;
        this.element.click(function () {
            var foo = self.getFoo();
        });
    },
    getFoo: function () {
        return this.foo;
    }

});

关于jQuery UI Widget Factory 获取当前小部件的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9320925/

相关文章:

javascript - Onclick函数多次触发

javascript - 使用 Ajax 刷新 Javascript 下拉框

jquery - Kendo UI Window.refresh({ data }) 未正确传递给 ASP.Net MVC 操作

javascript - jQuery UI,滑出一个Div,滑入Next

css - 关于 > 选择器的困惑及其在 css 中的用法

html - Css twitter 小部件停留在 firefox 中的元素之外

javascript - 如何使用 Laravel 来使用函数回调?

jquery - TypeError: f[s] 不是 jquery 表单提交的函数

javascript - 将参数或包含对象传递给 jQuery UI 可拖动事件

安卓 4.0 : widgets not appearing?