2011-04-08 6 views
0

私は、オープンインフォウィンドウにGoogle Mapを持つmouseenter/mouseleaveイベントハンドラーを追加しようとしています。Googleはapi、addListenerを外部ホバーイベントにマップします

私には10個の要素があり、それぞれに関連付けられたGoogleマップの情報ウィンドウがあります。要素にデータマーカー属性を追加して、どの要素がそれぞれのマーカー/情報ウィンドウに対応しているかを判断しました。

私の問題は、私が引数リスト内で変数を正しく構成していないことです。ここでは、次のとおりです。

....standard google maps definition above. double brackets are django context variables within a forloop loop. 

infowindow[{{forloop.counter}}]= new google.maps.InfoWindow({ 
    content:contentString{{forloop.counter}} 
    }); 


var marker{{forloop.counter}} = new google.maps.Marker({ 
    position:latlng{{forloop.counter}}, 
    map:map, 
    icon:image, 
    animation: google.maps.Animation.DROP, 
    title:"Click for more info" 
    }); 


google.maps.event.addListener(marker{{forloop.counter}},'click', function(){ 
    $.each(infowindow, function(name, value){ 
     this.close(); 
    }); 
    infowindow[{{forloop.counter}}].open(map,marker{{forloop.counter}}); 
}); 

{% endfor %}  
{% endif %} 

}明らかに

$('.entries').mouseenter(function(){ 
    var num=$(this).attr('data-marker'); 

    $.each(infowindow, function(name, value){ 
    this.close(); 
    }); 

     var mk='marker' 
    m=mk.concat(num); 


    infowindow[num].open(map,m); 

}); 

$('.entries').mouseleave(function(){ 

$.each(infowindow, function(name, value){ 
    this.close(); 
}); 


}); 

は、私はちょうど.open()メソッドに文字列を渡すと、それが動作するように期待することはできません。私はあなたが文字列としてメートルを持っているinfowindow[num].open(map,m);あなたのコードで配列のインデックスに「NUM」 おかげで、 ブレンダン

答えて

1

私は変数を渡すことができないことが、より驚いています。 mはマーカーオブジェクトである必要があります。

ちょうどあなたが情報ウィンドウを行ったように、マーカーの配列を構築し、トリックをしたinfowindow[num].open(map,markers[num]);

+0

を使用しています。ありがとう – Ben

関連する問題