gpt4 book ai didi

javascript - Google Map API - 无法删除 for 循环中的标记

转载 作者:行者123 更新时间:2023-12-02 18:18:01 24 4
gpt4 key购买 nike

我用 JSON 数据填充了 Google map ,我有一些复选框来选择要在 map 上显示的数据类别。当我单击该复选框时,它会通过 Ajax 调用新的 JSON 数据,当我取消选中某个框时,它会在所有标记的数组上循环,并删除所有未选中类别的标记。

大多数情况下都有效,但有时标记会消失并再次出现。看来他们还在数组什么的……

$( "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]);
}
}
}
}
});

我很确定最后一个 for 循环中有一个错误,但我看不出是什么......

编辑:

这是完整的Js代码: http://jsfiddle.net/5bMQm/

最佳答案

编辑:我明白你现在想要做什么。

for (var i = 0, l = markersArray.length; i < l; i++) {
if ( markersArray[i] != undefined) {
if( null == markersArray[i].cat || markersArray[i].cat == checkboxVal) {
markersArray[i].setMap(null);
markersArray.splice(i, 1);
i--; l--;
}
}
}

关于javascript - Google Map API - 无法删除 for 循环中的标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19095248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com