Google Map을 사용하여 infowindows를 여는 mouseenter/mouseleave 이벤트 처리기를 추가하려고합니다.Google 외부 api, addListener에 외부 이벤트를 매핑합니다.
각 요소에는 Google지도의 관련 정보가 포함 된 10 개의 요소가 있습니다. 내 마커/정보창과 일치하는 요소를 확인하기 위해 요소에 데이터 마커 속성을 추가했습니다.
제 문제는 인수 목록에서 변수를 올바르게 구성하지 못한다는 것입니다. 여기있다 :
....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() 메소드로 문자열을 전달하고 일을 기대할 수 없다. 배열 인덱스에 변수 'num'을 전달할 수 없다는 것에 더 놀랐습니다. 감사합니다. Brendan
를 사용합니다. 고마워요. – Ben