我想在标记点击
上突出显示侧边栏google.maps.event.addListener(markers[i], "click", function() {
var viewListLink="trID"+i;
document.getElementById(viewListLink).style.background="#ff0099";
}
TR的id =“trID”+ i
控制台总是给我最后一个trID20。
如何为每个标记获取i?
类似的东西:
this.get
但是如何?
修改
打开InfoWindow的标记点击不起作用:getDetails(placesArr [i],i);
places.search(search,function(placesArr,status,pagination){
(function(i) {
google.maps.event.addListener(markers[i],"click",function(){
getDetails(placesArr[i],i);
var viewListLink = "trID"+i;
document.getElementById(viewListLink).style.background = "#ff0099";
});
})(i);
});
我试图将placesArr [i]传回匿名函数
(function(placesArr,i) {
但它不起作用,
(function(placesArr,i) {
这两个
这是getDetails函数:
function getDetails(place,i){
return function(){
places.getDetails({
reference:place.reference
},showInfoWindow(i));
}
}
这里是showInfoWindow函数:
function showInfoWindow(i){
return function(place,status){
if(!!iw && iw._iwId == i){
iw.close();
iw = null;
}else{
if(iw){
iw.close();
iw = null;
}
if (status == google.maps.places.PlacesServiceStatus.OK){
iw=new google.maps.InfoWindow({
content:getIWContent(place),
_iwId:i
});
if (place.reviews && place['reviews'].length){
showReviews(place.reviews);
}else{
document.getElementById('theReviews').innerHTML = 'no reviews';
toggle_off('reviewsPanel');
toggle_off('theReviews');
}
iw.open(map,markers[i]);
// showReviews(place.reviews);
}
}
}
}
答案 0 :(得分:1)
我假设您遇到变量范围问题,为了解决这个问题,您可能需要用以下代码替换代码:
( function( i ) {
google.maps.event.addListener(markers[i], "click", function() {
var viewListLink="trID"+i;
document.getElementById(viewListLink).style.background="#ff0099";
});
})( i );
答案 1 :(得分:1)
一切都与范围有关。
(function(i) {
google.maps.event.addListener(markers[i],"click",function() {
var viewListLink = "trID"+i;
document.getElementById(viewListLink).style.background = "#f09";
});
})(i);