作者timmy852111 (光⊙﹏⊙)
看板Ajax
标题[问题] google map event 听不到事件?
时间Wed Jan 4 13:58:53 2012
简单说一下0.0
就是 有很多的marker 每个marker搭配一个infowindow 加上一个event
但是好像event好像听不到或是找不到要搭配哪个infowindow囧
程式码如下
function gettestlatlngMarkers(n) {
var marker = [];
var image = './16px/xxx.png';
for (var i = 0; i < n.length; ++i) {
var tempLatlng = new google.maps.LatLng(
n[i]['pointlat'], n[i]['pointlng']);
var contentString = '123';
var markers = new google.maps.Marker({
position: tempLatlng,
title: n[i]['name'],
icon: image
});
infowindow = new google.maps.InfoWindow({
content: contentString,
size: new google.maps.Size(200,200)
});
google.maps.event.addListener(markers, 'click', function() {
markers = this;//加上这行就OK了= =
if (infowindow) infowindow.close();
infowindow.open(map, markers);
});
marker.push(markers);
);
}
return marker;
}
就我的理解应该是把marker push到阵列里面
但是infowindow跟event好像没有跟上
请问要怎麽改呢>"<
--
▄▄▄▄▄ ▄▄▄▄▄▄ ▄ ▄
▄ ▄▄▄▄ ▄
▄▄▄ ▄
▄ ▄ ▄▄▄▄▄▄▄
▄ ▄
▄▄ ▄▄
▄ ▄▄▄▄
▄
▄ ▄ ▄▄▄ くっくっくっ....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.126.112.15
※ 编辑: timmy852111 来自: 59.126.112.15 (01/04 13:59)
1F:→ amos6064:官网api说的已经很详细了你尝试把你的marker用全域 01/04 15:15
2F:→ amos6064:我event control没问题 01/04 15:16
3F:→ amos6064:function再用一个物件跟全域绑定记住要控制一下unbind 01/04 15:17
更正一下
现在event已经可以听到了
可是点出来的infowindow都是最後一笔= =
程式码直接改在上面了
我不管点哪个点 永远都是最後一笔的那个点弹跳出infowindow囧
有把event拆掉 直接open infowindow是正常的 所有点都可以产生正确的window
所以有问题的应该是 event那行
※ 编辑: timmy852111 来自: 59.126.112.15 (01/04 16:18)
4F:→ amos6064:没仔细看程式码~marker.push(markers);放到listener前面 01/04 18:02
5F:→ amos6064:MarkerClusterer你可以看看这个 01/04 18:02
6F:→ timmy852111:MarkerClusterer我有用过 不过好复杂囧 01/04 18:35
7F:→ timmy852111:现在是用marker manager 01/04 18:35
※ 编辑: timmy852111 来自: 59.126.112.15 (01/06 09:53)