在小部件中,我试图从选项中的属性调用一个函数
getThing: this._runFunc() 但是我收到一个错误,说_runFunc()不是对象的实例?你能帮忙吗?
$.widget('my.testW', {
options:{
buttons:buttons,
getThing: this._runFunc() // why wont _runFunc work?
},
_create: function () {
//do things
var s = this.options.getThing;
},
_runFunc: function (){
return 'hello world'
}
});发布于 2014-03-19 12:11:15
在$.widget调用中,options对象和包含它的匿名对象文本只是$.widget的参数,因此this引用的是$.widget调用之外的任何this,而不是新定义的小部件。
AFAIK,无法从该文本的值中引用同一匿名对象文本的其他元素。
如果您想隐藏您的函数,您可以这样定义您的小部件:
(function() {
function _runFunc() {
return 'hello world';
};
$.widget(..., {
options: {
getThing: _runFunc()
},
_runFunc: _runFunc; // if you want to expose this method
});
})();在该范围内包含实用程序函数的地方。
https://stackoverflow.com/questions/22505160
复制相似问题