我有一个循环标记数组的函数,并为所有标记分配点击事件。
for(var key in markers){
clickEvent(markers[key], sekolah[j].show, sekolah[j].hide, key);
}
function clickEvent(mark, showArr, hideArr, key){
var listener = google.maps.event.addListener(mark, 'click', function() {
//does a lot of stuff
});
}
我想要做的是在点击任何标记时删除/禁用所有点击事件(这样在没有先重置地图的情况下,不能顺序点击两个标记)。当用户重置地图时,将再次启用点击事件。
这是重置地图的功能:
google.maps.event.addListener(map, "click", function(){
setAllMap(map); //Shows all markers
//and a lot of stuff
});
我尝试过使用addListenerOnce
,但这并不奏效。我也从another post尝试了这个建议,但结果与使用addListenerOnce相同。
有没有办法实现这个目标?
谢谢。
PS这是我创建markers
:
var newMark = new google.maps.Marker({
map: map,
position: pos,
id: ids,
title: name,
icon: "res/schoolf.png"
});;
markers[ids] = newMark;