在infowindow.setContent
中我有按钮我想在点击时更改标记颜色按钮我尝试了这个代码
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0] + locations[i][3] + " <button class='btn btn-primary btn-sm map-checked-box mr-1' onclick='myFunction();' data-id='"+ locations[i][3] +"'>Print</button> ");
infowindow.open(map, marker);
}
})(marker, i ));
}
function myFunction() {
infowindow.setContent('<div style="background-color: green">' + locations[i][0] + locations[i][3] + "</div>");
}
我正在调用myfunction((,但它在此行中不起作用我想我在函数中找错了位置
infowindow.setContent(locations[i][0] + locations[i][3] + " <button class='btn btn-primary btn-sm map-checked-box mr-1' onclick='myFunction();' data-id='"+ locations[i][3] +"'>Print</button> ");
不能通过CSS更改标记的颜色,因为标记是图像。您必须将新图像设置为现有标记,才能获得更改标记颜色的效果。
一般步骤是:
- 将标记存储在稍后在
myFunction
中可用的变量中 - 使用
setIcon(urlToNewImage)
更新标记图像
这是一个小提琴的例子。单击更改按钮查看效果。
有关联机可用图标的列表,请参阅此链接。
通过解决
function state(marker){
marker.setIcon('http://maps.google.com/mapfiles/ms/micons/orange.png');
}