0

我正在使用 gmap3 jQuery 插件渲染谷歌地图标记。我通过单击基于标记 ID 的菜单链接来触发标记弹出窗口,我可以使用此插件进行设置。

标记使用以下代码获取 ID(在 lat/long 和弹出文本旁边):

{latLng:[46.055221,14.504265], data:"some text", id:"map-1"}

使用此 jQuery 代码触发标记弹出窗口:

$('#maptrigger-1').live('click',function(){
    var marker = $('#googlemap').gmap3({ get: { id: 'map-1' } });
    google.maps.event.trigger(marker, 'click'); 
});

这个 HTML 代码:

<a href="#" id="maptrigger-1">click</a>

我不想为每个标记/ID(map-1/maptrigger-1、map2/maptrigger2、map3/maptrigger3)重复 jQuery 代码,但到目前为止我还没有成功。

任何帮助,将不胜感激。

4

2 回答 2

5

您应该为可点击元素添加一个类

<a href="#" id="maptrigger-1" class="trigger">click</a>

并使用

$('someParentOfAll.triggerElements').on('click','.trigger', function(){
    var mapid = 'map-' + this.id.split('-')[1],
        marker = $('#googlemap').gmap3({ get: { id: mapid } });

    google.maps.event.trigger(marker, 'click'); 
});
于 2012-12-06T16:31:14.263 回答
2

使用以选择器开头的属性

$('[id^="maptrigger"]').live('click',function(){

最好使用.on()as.live()附加事件jQuery 1.7.0

$('[id^="maptrigger"]').on('click',function(){
于 2012-12-06T16:25:33.137 回答