2014-12-06 53 views
1

所以我有一個谷歌地圖提供了許多不同的標記圖標,用戶通過下拉菜單選擇:更改谷歌地圖圖標下拉菜單

<div class="btn-group white"> 
    <a id="location-type-menu-button" class="btn btn-primary dropdown-toggle" data- toggle="dropdown" href="#" >Select a Country <span class="caret"></span></a> 
     <ul id="location-type-menu" class="dropdown-menu"> 
       <li><a value="ItemI" href="#">Item I</a></li> 
       <li><a value="ItemII" href="#">Item II</a></li> 
       <li><a value="ItemIII" href="#">Item III</a></li>    </ul> 
</div> 

眼下,當下降向下選擇菜單,它通過該位的jQuery改變了按鈕的文本:

$(window).load(function() { 
      $("#location-type-menu li a").click(function() { 
       $("#location-type-menu-button:first-child").text($(this).text()); 
       $("#location-type-menu-button:first-child").val($(this).text()); 
      }); 

     }); 

,但我也希望它立即改變谷歌地圖上的圖標。谷歌地圖標記由創建,最初設置爲問號圖標。

var customIcons = { 
      ItemI: { 
       icon: 'http://...' 
      }, 
      ItemII: { 
       icon: 'http://...' 
      }, 
      ItemIII: { 
       icon: 'https:...' 
      }, 
      question: { 
       icon: 'https:...' 
      } 
}; 
var icon = customIcons['question'] || {}; 
var marker = new google.maps.Marker({ 
       position: location, 
       icon: icon.icon, 
       map: map, 
       draggable: true 
      }); 

由於圖標變量只調用創建一個新的標誌時,我懷疑改變圖標的​​變量不是這樣做的方式。

我已經嘗試了幾個不同的東西,但選擇不在這裏包含它們,因爲我不認爲它們沿着正確的解決方案路徑。我衷心感謝您的幫助。非常感謝!

+0

你可以提供一個[最小的,完整的,經過測試和可讀例子](http://stackoverflow.com/help/mcve)或[jsfiddle](http://jsfiddle.net)來說明您遇到的問題(包括示例數據和示例圖標URL可用)。 [示例動態更改圖標](http://www.geocodezip.com/v3_MW_example_hoverchange.html)(不使用JQuery) – geocodezip 2014-12-06 21:46:20

+0

可能會有一段時間,因爲我從來沒有創建自己的js小提琴,但我會這樣做,謝謝 – ambe5960 2014-12-06 21:47:47

回答

1

確保您的標記是「click」事件定義,那麼你可以簡單地更新圖標,

如:

marker.setIcon(customIcons['ItemI'].icon); 
+0

gosh,我忘記了setIcon屬性。我會亂搞這個,回到你身邊。謝謝一堆。 – ambe5960 2014-12-06 21:58:40

+0

@ ambe5960它是怎麼回事?你解決了這個問題嗎? – PeterA 2014-12-06 22:55:31

+0

它工作得很好,謝謝。對不起,反應遲緩,不得不跑到商店。 – ambe5960 2014-12-06 23:55:16