作者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)