2014-12-06 73 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