1

我正在尝试从另一个库创建一个实例,_create并从我的小部件中的私有和公共函数访问它。这可能吗?

$.widget('namespace.pluginName', {
    _create: function() {
        // Create instance from other library on create 
        var someovar = otherlibrary.function(options);
    },
    _privatemethod: function() {
        var self = this;
        // Call "samovar" instance?
        self._create.somevar.function( "option", function() {
            // Do sutff 
        });     
    }
}));

我也喜欢像这样只缓存我的选择一次:var div = $('#my_div');on _create。现在我需要在 10 个不同的函数中重新选择相同的 div。这是这样做的方法还是我应该忽略缓存?

谢谢!

4

1 回答 1

0

我没有测试过,但尝试这样做:

$.widget('namespace.pluginName', {
    _create: function() {
        // Create instance from other library on create 
        this.someovar = otherlibrary.function(options);
    },
    _privatemethod: function() {
        var self = this;
        // Call "samovar" instance?
        this.somevar.function( "option", function() {
            // Do sutff 
        });     
    }
}));

Alto $.widget() 采用第三个参数,这是您的小部件原型(另一个对象)。也许它在您的情况下可能会有所帮助 - 例如存储提到的缓存。

于 2012-09-06T12:56:55.187 回答