【发布时间】:2013-10-23 07:02:23
【问题描述】:
我有一个适用于我的“地图”功能的代码 sn-p - 以下是代码:
var latlang = new google.maps.LatLng(myjsonobject[pos].geocode.latitude, myjsonobject[pos].geocode.longitude);
$('#map_canvas').gmap({
'center': latlang,
'zoom': 10,
'disableDefaultUI':false,
'callback': function() {
var self = this;
self
.addMarker({'position': this.get('map').getCenter() })
.click(function() {
self.openInfoWindow({ 'content': address }, this);
});
}
});
变量latlang 提供给定位置的纬度和经度。然后,map_canvas 是显示 Google 地图的 div,其中 latlang 作为其输入。
在回调函数中,self 是分配有this 的变量。这是我困惑的地方。在这种情况下,this 是什么?任何人都可以对getCenter() 和self.openInfoWindow 中的this 有所了解吗?
整个代码如何工作并向我显示结果?
【问题讨论】:
-
见:stackoverflow.com/questions/13441307/…。具体来说,这是在 onclick 处理程序的上下文中,因此请查看规则 4。但是 jQuery 也可以更改
this的内容,因此请查看 jQuery 文档。 -
感谢您的回复... 该代码正在我的 HTML5 移动应用程序中使用,其中显示了一组地址作为结果,当我单击一个地址时,将显示该地址的地图。所有这些仅适用于第一次(第一次地址点击)。即如果我接下来选择一个新地址,地图仍然显示旧地址及其位置:(
标签: javascript jquery google-maps