在jQueryUI小部件中维护作用域
我有一个问题,失去了一个内部的范围。在_initialize内部,在jQueryUI小部件中维护作用域,jquery,jquery-ui,jquery-ui-widget-factory,jquery-ui-widget,Jquery,Jquery Ui,Jquery Ui Widget Factory,Jquery Ui Widget,我有一个问题,失去了一个内部的范围。在_initialize内部,this.options不起作用,而that.options也不起作用。如何从该方法访问小部件的范围 $.widget("myproj.map", { options: { centerLat: 51.511214, centerLong: -0.119824, }, // the constructor _creat
this.options
不起作用,而that.options
也不起作用。如何从该方法访问小部件的范围
$.widget("myproj.map", {
options: {
centerLat: 51.511214,
centerLong: -0.119824,
},
// the constructor
_create: function () {
var that = this;
google.maps.event.addDomListener(window, 'load', this._initialize);
},
_initialize: function () {
var mapOptions = {
center: new google.maps.LatLng(that.options.centerLat, that.options.centerLong),
zoom: 11,
};
澄清
$.widget("myproj.map", {
options: {
centerLat: 51.511214,
centerLong: -0.119824,
},
// the constructor
_create: function () {
google.maps.event.addDomListener(window, 'load', this._initialize);
},
_initialize: function () {
console.log(this);
var mapOptions = {
center: new google.maps.LatLng(this.options.centerLat, this.options.centerLong),
zoom: 11
}; ...code omitted
不工作,当我登录console.log时\u初始化
Window {top: Window, window: Window, location: Location, external: Object, chrome: Object…}
编辑:此答案不解决由事件处理程序引起的重新绑定问题
变量
在\u create
函数内,您应该能够访问此
查看此
google.maps.event.adddomstener
更改此引用的内容。您可以通过调用
你到处都是逗号。。。未编码的
}
,}
等等……我想他只是省略了关闭_initializeand widget,missing:})代码>我只添加了'that'变量,因为我正在从google.maps.event listenerahh中将作用域丢失到initialize函数中。添加了一个新的答案(干杯,这正是我需要的:)
new google.maps.LatLng(this.options.centerLat, this.options.centerLong)
google.maps.event.addDomListener(window, 'load', this._initialize.bind(this));