我正在使用gmap3 jQuery插件渲染Google Maps标记。 我正在触发标记弹出窗口,点击基于标记ID的菜单链接,我可以使用此插件设置。
Marker使用以下代码获取ID(在lat / long和popup文本旁边):
{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代码,但到目前为止我还没有成功。
任何帮助都将不胜感激。
答案 0 :(得分: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');
});
答案 1 :(得分:2)
使用 attribute starts with selector
$('[id^="maptrigger"]').live('click',function(){
最好使用.on()
作为.live()
附加事件,自jQuery 1.7.0
起已被弃用
$('[id^="maptrigger"]').on('click',function(){