私は、オープンインフォウィンドウに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」 おかげで、 ブレンダン
を使用しています。ありがとう – Ben