0

gmap3 jQuery プラグインを使用して Google マップ マーカーをレンダリングしています。このプラグインで設定できるマーカー ID に基づいて、メニュー リンクをクリックしてマーカー ポップアップをトリガーしています。

マーカーは、次のコードで ID (緯度/経度とポップアップ テキストの横) を取得します。

{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 に答える