我正在寻找在jQuery UI小部件工厂(jquery.ui.widget.js)之上构建的jQuery插件中存储公共变量的最佳方法。
(function($,undefined) {
$.widget('namespace.name',{
publicVar: '',
options: {
},
_create: function() {
console.log(this.publicVar);
},
publicMethod: function() {
},
});
})(jQuery);
变量需要对插件的每个实例都是唯一的,因此需要在widget对象$.widget('namespace.name',{});
内的某处声明它。此外,我希望可以从每个方法(_create,publicMethod)中访问它。
所以我尝试的是直接在widget对象中声明变量'publicVar'以及选项和方法。这似乎有效,但是无法在窗口小部件之外访问此变量,或者是否存在?
欢迎任何关于如何更好地为jQuery小部件定义公共变量的建议。
答案 0 :(得分:2)
我认为您正在寻找内置于ui框架中的getter / setter方法。 检查jQuery UI Developer Guide
的Setters and Getters部分查找有关覆盖_SetOption
的部分 _setOption: function(key, value) {
// handle new settings and update options hash
}