Jquery 使用ajax调用筛选数据时更新标记

Jquery 使用ajax调用筛选数据时更新标记,jquery,ajax,leaflet,Jquery,Ajax,Leaflet,我面临的问题是,当过滤位置标记不更新时,旧标记仍然存在,新标记继续添加到旧标记上 我也使用了map.removeLayer(),但如果在成功调用后使用此函数,则似乎没有任何效果。它将始终删除标记 $('#filter').click(function(){ $.ajax({ type:'GET', url:"{{ url('filter-opportunities-grid') }}", data: {

我面临的问题是,当过滤位置标记不更新时,旧标记仍然存在,新标记继续添加到旧标记上

我也使用了
map.removeLayer()
,但如果在成功调用后使用此函数,则似乎没有任何效果。它将始终删除标记

$('#filter').click(function(){
    $.ajax({
            type:'GET',
            url:"{{ url('filter-opportunities-grid') }}",
            data: {
                'status':status,
            },
            dataType:'json',
            success:function(res){
            var addressPoints = res[8];
             if (markers != null) {
                  map.removeLayer(markers);
             }

                //Color according to types
                var markers = L.markerClusterGroup();
                    for (var i = 0; i < addressPoints.length; i++) {
                        var a = addressPoints[i];
                        var title = a.title;
                        var due_date = a.due_date;
                        var type = a.type;
                        var address = a.url;

                       if(type==0) {
                                var marker = L.marker(new L.LatLng(a.lat,a.lng), {  title: title, icon:red});
                        }
                        if(type==1) {
                                var marker = L.marker(new L.LatLng(a.lat,a.lng), {  title: title, icon:orange});
                        }
                        if(type==2) {
                                var marker = L.marker(new L.LatLng(a.lat,a.lng), {  title: title, icon:yellow});
                        }
                        if(type==3) {
                                var marker = L.marker(new L.LatLng(a.lat,a.lng), {  title: title, icon:green});
                        }
                        if(type==4) {
                                var marker = L.marker(new L.LatLng(a.lat,a.lng), {  title: title, icon:blue});
                        }
                        marker.bindPopup('<a class="text-info" href='+address+'><i class="fa fa-external-link" aria-hidden="true"></i> </a>'+title+'<br>Date de fin:'+due_date);
                        markers.addLayer(marker);
                        map.addLayer(markers);
                    }                     
            }  
    })
}
$(“#过滤器”)。单击(函数(){
$.ajax({
类型:'GET',
url:“{url('filter-opportunities-grid')}}”,
数据:{
“状态”:状态,
},
数据类型:'json',
成功:功能(res){
var addressPoints=res[8];
如果(标记!=null){
地图移除层(标记);
}
//根据类型选择颜色
var markers=L.markerClusterGroup();
对于(变量i=0;i财务日期:‘+到期日);
markers.addLayer(marker);
添加图层(标记);
}                     
}  
})
}

您是否尝试过在函数之外定义标记

var markers = L.markerClusterGroup();   
标记是否在调用以下内容的范围内

if (markers != null) {
  map.removeLayer(markers);
}