[問題] google map event 聽不到事件?

看板Ajax作者 (光⊙﹏⊙)時間14年前 (2012/01/04 13:58), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/4 (看更多)
簡單說一下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)

01/04 15:15, , 1F
官網api說的已經很詳細了你嘗試把你的marker用全域
01/04 15:15, 1F

01/04 15:16, , 2F
我event control沒問題
01/04 15:16, 2F

01/04 15:17, , 3F
function再用一個物件跟全域綁定記住要控制一下unbind
01/04 15:17, 3F
更正一下 現在event已經可以聽到了 可是點出來的infowindow都是最後一筆= = 程式碼直接改在上面了 我不管點哪個點 永遠都是最後一筆的那個點彈跳出infowindow囧 有把event拆掉 直接open infowindow是正常的 所有點都可以產生正確的window 所以有問題的應該是 event那行 ※ 編輯: timmy852111 來自: 59.126.112.15 (01/04 16:18)

01/04 18:02, , 4F
沒仔細看程式碼~marker.push(markers);放到listener前面
01/04 18:02, 4F

01/04 18:02, , 5F
MarkerClusterer你可以看看這個
01/04 18:02, 5F

01/04 18:35, , 6F
MarkerClusterer我有用過 不過好複雜囧
01/04 18:35, 6F

01/04 18:35, , 7F
現在是用marker manager
01/04 18:35, 7F

01/04 19:11, , 8F
http://0rz.tw/EDNm7這邊有MarkerClusterer範例,可以參考
01/04 19:11, 8F
※ 編輯: timmy852111 來自: 59.126.112.15 (01/06 09:53)
文章代碼(AID): #1F0-gW-9 (Ajax)
文章代碼(AID): #1F0-gW-9 (Ajax)