1
我正在開發一個使用gmaps4rails(https://github.com/apneadiving/Google-Maps-for-Rails)的應用程序。我想添加一個事件監聽器到標記,以便它在地圖(以及在地圖上顯示信息窗口)旁邊創建一個可視化。是否有可能使用gmaps4rails爲每個標記添加事件偵聽器?使用gmaps4rails將標記添加到標記
我正在開發一個使用gmaps4rails(https://github.com/apneadiving/Google-Maps-for-Rails)的應用程序。我想添加一個事件監聽器到標記,以便它在地圖(以及在地圖上顯示信息窗口)旁邊創建一個可視化。是否有可能使用gmaps4rails爲每個標記添加事件偵聽器?使用gmaps4rails將標記添加到標記
當然這是可能的。
您應該在gmaps4rails_callback
javascript函數中編寫代碼以確保在設置所有內容時執行它。
然後循環的markers
JS變量:Gmaps4Rails.markers
每個標記的此數組中的屬性有:
經度
緯度
google_object含有谷歌marker
這就是說你可以做任何你想做的事情。
作爲一個附註,地圖也可以做Gmaps4Rails.map
。
一般來說,閱讀gmaps4rails.js
文件,它有很好的文檔記錄(我希望!)。
編輯:
您在評論中解釋的問題是奇怪的,它完美對我來說,當我使用:
google.maps.event.addListener(Gmaps4Rails.markers[0].google_object, 'click', function(object){ alert("hello"); });
我猜你應該嘗試使用更傳統的for
循環,如:
<script type="text/javascript">
function gmaps4rails_callback() {
function say_yo(arg) { return function(){alert('yo '+ arg + '!');};};
for (var i = 0; i < Gmaps4Rails.markers.length; ++i) {
google.maps.event.addListener(Gmaps4Rails.markers[i].google_object, 'click', say_yo(i));
}
}
</script>
我試圖 <腳本類型= 「文本/ JavaScript的」> \t功能gmaps4rails_callback() \t { \t \t爲(在Gmaps4Rails.markers米) \t \t { \t \t \t google.maps.event.addListener(米, '點擊',函數(對象){ \t \t \t警報( 「你好」 ); \t \t \t}); \t \t} \t} 但從未標記顯示在地圖上。我試圖把在HTML腳本的頭部這段代碼/在身體的開始/在身體的結束,但所有這些都沒有工作.. – hailey 2011-05-18 10:51:06
閱讀我在我的答案中寫道,你可以通過執行訪問谷歌標記:m.google_object – apneadiving 2011-05-18 10:57:07
我用m.google_object替換m:現在標記顯示在地圖上,但它似乎是偵聽器未添加到標記 - 它仍然只顯示從模型生成的信息窗口.. – hailey 2011-05-18 12:38:52