首次点击后,点击谷歌地图标记将无法打开信息窗口

时间:2015-07-26 09:06:47

标签: javascript jquery google-maps google-maps-api-3

我有一个谷歌地图,只需双击地图就会打开一个对话框。如果用户单击“确定”,则会在地图上添加标记。此标记将在第一次单击时打开信息窗口(良好行为)。

代码的另一部分将在页面加载时直接显示带有信息窗口的标记,这些标记在第一次单击时不会打开信息窗口(不良行为)。

指针将在第一次点击时从指针变为手指,然后在第二次点击时指针将会打开。

以下显示加载时的商店:

//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" } } 

我看不出两部分代码之间有太大区别。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

很抱歉提出这个问题,但我找到了解决方案。

由于一些非常奇怪的原因,代码的差异在于标记的“title”属性。我删除了它,现在一切都很好。

我无法解释为什么这会对点击产生影响......