我使用JSON數據填充Google地圖,我有一些複選框可以選擇要在地圖上顯示的數據類別。 當我點擊複選框時,它通過Ajax調用一個新的JSON數據,當我取消選中一個框時,它會循環所有標記的數組,並刪除所有未選中類別的標記。Google Map API - 無法在for循環中刪除標記
它大部分時間都在使用,但有時標記會消失並再次出現。看來,他們仍然數組或東西...
$("input[type=checkbox]").change(function() {
var data ='';
var checkbox = $(this);
var checkboxVal = $(this).val();
console.log('click');
if (checkbox.is(':checked')) {
$('.loader').show();
$("input:checkbox[name=poi_categories]:checked").each(function() {
data = data + checkboxVal + ',';
$.ajax({
type: "POST",
url: window.location.pathname,
data: "categorie=" + data,
success:function(response){
json = JSON.parse(response);
for (var i = 0; i < json.length; i++) {
createMarker(json[i], data);
}
$('.loader').hide();
}
});
});
} else {
for (var i in markersArray) {
if (markersArray[i] != undefined) {
if(null == markersArray[i].cat || markersArray[i].cat == checkboxVal) {
markersArray[i].setMap(null);
delete(markersArray[i]);
}
}
}
}
});
在我敢肯定沒有在最後一個錯誤的循環,但我看不出有什麼...
編輯:
這裏是整個JS代碼:http://jsfiddle.net/5bMQm/
createMarker究竟做了什麼? – davidkonrad
查看編輯問題中的更新 – Xavier
相同:) :)標記消失一秒鐘,然後再次出現,如果'setMAp(null)'不起作用 – Xavier