Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQueryUI小部件中维护作用域_Jquery_Jquery Ui_Jquery Ui Widget Factory_Jquery Ui Widget - Fatal编程技术网

在jQueryUI小部件中维护作用域

在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

我有一个问题,失去了一个内部的范围。在_initialize内部,
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));