【发布时间】:2015-07-26 09:06:46
【问题描述】:
我有一个谷歌地图,双击地图会打开一个对话框。如果用户单击确定,那么它将在地图上添加一个标记。此标记将在第一次点击时打开信息窗口(良好行为)。
代码的另一部分将在页面加载时直接显示带有信息窗口的标记,这些标记不会在第一次单击时打开信息窗口(不良行为)。第一次单击时指针会从手变为手指,然后在第二次单击时会打开窗口。
以下显示加载时的商店:
//display the markers
for(var i = 0; i < stores.length; i++) {
var pos = new google.maps.LatLng(stores[i][8], stores[i][9]);
all_stores_markers.push( new google.maps.Marker({
position: pos,
map: map,
title: stores[i][1],
clickable: true
}));
all_stores_markers[i].html = 'some content';
google.maps.event.addListener(all_stores_markers[i], 'click', function () {
// where I have added .html to the marker object.
infowindow.setContent(this.html);
infowindow.open(map, this);
console.log("click marker");
});
}
这部分是当用户在地图上双击后在对话框中单击确定。以下内容将使标记在第一次点击时可点击:
all_stores_markers.push( new google.maps.Marker({
position: location,
map: map,
clickable: true
}));
all_stores_markers[all_stores_markers.length-1].html = 'some content';
google.maps.event.addListener(all_stores_markers[all_stores_markers.length-1], 'click', function() {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
这是商店的内容:
array(2) { [0]=> array(12) { [0]=> string(1) "1" [1]=> string(8) "aaaaaaaa" [2]=> string(15) "fjefjdoiajfdhai" [3]=> string(13) "jadoidjasoijd" [4]=> string(4) "7575" [5]=> string(10) "City folle" [6]=> string(9) "Australia" [7]=> string(13) "http://go.com" [8]=> string(8) "-20.0559" [9]=> string(7) "135.967" [10]=> string(10) "1818181818" [11]=> string(10) "1818181818" } [1]=> array(12) { [0]=> string(1) "2" [1]=> string(8) "New Shop" [2]=> string(11) "adjakdjakld" [3]=> string(6) "eqwewq" [4]=> string(4) "4343" [5]=> string(4) "Arff" [6]=> string(9) "Australia" [7]=> string(15) "http://test.com" [8]=> string(8) "-28.9985" [9]=> string(6) "123.75" [10]=> string(8) "92129181" [11]=> string(8) "82828282" } }
我看不出这两个部分的代码有太大区别。有什么想法吗?
【问题讨论】:
-
您的代码对我来说没有问题(无论我是否设置了标题)。可以发
stores的内容吗?您使用哪个浏览器/API 版本? -
我用的是firefox,api v3。添加了可变内容。
-
FF39 和实验性 API 版本 (code.google.com/p/gmaps-api-issues/issues/detail?id=8278) 存在(已经)一个错误。使用您的代码不会发生在我身上,但是当您没有加载特定的 API 版本时,会强制加载发布版本(
v=3),否则将加载实验版本 -
我加载 api 的方式是这样
-
所以从 API-src 中删除
.exp:maps.googleapis.com/maps/api/…
标签: javascript jquery google-maps google-maps-api-3