我在单击鼠标时删除标记时遇到问题。嗯,事情并不像看起来那么简单。
function addPoint(event) {
path.insertAt(path.length, event.latLng);
var marker = new google.maps.Marker({
position: event.latLng,
map: map
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', function() {
marker.setMap(null);
markers.splice(i, 1);
}
);
如果我使用该代码,在创建标记时立即添加侦听器,删除它会很容易,因为我指的是marker.setMap(null);
. 但在我的情况下,我希望创建它们,然后我想将事件侦听器添加到它们使用
function usun(){
for (var i=0; i<markersArray.length; i++){
google.maps.event.addListener(marker, 'click', function() {
alert('lol');
});
}
我正在推动每个标记markersArray
,让我现在可以向每个标记添加事件,但是我怎样才能删除它?当我marker.setMap(null);
代替警报时,它说标记未定义,我不知道如何引用我刚刚单击的标记:S 也不能将标记用作全局变量,因为我收到Uncaught TypeError: Cannot read property '__e3_' of undefined
错误消息。
编辑:如果我尝试使用
function usun(){
for (var i=0; i<markersArray.length; i++){
google.maps.event.addListener(markersArray[i], 'click', function() {
markersArray[i].setMap(null);
});
}
我得到错误Uncaught TypeError: Cannot call method 'setMap' of undefined
。这就是为什么我确定我需要使用“标记”。