листовка, отдельные события клика, не могу сбросить стиль - PullRequest
0 голосов
/ 17 октября 2019

Я пытался создать события нажатия для 2 отдельных слоев карты, но я не могу сделать один из стилей сброса слоев, он отображает информацию, но не сбрасывает стиль, даже тот же код, который работает для первого слоя:

  var roles = {{rols|safe}};
        var cips = {{cip_geojson|safe}};
        var segm = {{poly_seg|geojsonfeature|safe}};
        var mapopts =  {};
        var ultimoClick, resSty, map = L.map('mapa').setView([-23.6506, -70.3968],18);
        map.doubleClickZoom.disable();
        map.createPane('cips');
        map.getPane('cips').style.zIndex = 650;
        function cip_info(e){
            ultimoClick && cips_gj.resetStyle(ultimoClick);
            document.getElementById('r_rol').innerHTML =  e.target.feature.properties.rol;
            var layer = e.target;
            layer.setStyle({
                pane:"cips",
                radius: 17,
                fillColor: 'red',
                color: "#202020",
                weight: 3,
                opacity: 1,
                fillOpacity: 0.85
            });
            if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {layer.bringToFront();}
            ultimoClick = layer;

        }
        var cipMarkerOptions = {
            pane:'cips',
            radius: 12,
            fillColor: "#EEF6F4",
            color: "#202020",
            weight: 3,
            opacity: 1,
            fillOpacity: 1
        };
        var cips_gj = L.geoJson(cips , {
              pointToLayer: function (feature, latlng) {
              return L.circleMarker(latlng, cipMarkerOptions);
          },
              onEachFeature:info_cip,
        }).addTo(map);
        function info_cip(feature, layer) {
          layer.on({
            click:cip_info,
          });
            }

        map.createPane('roles');
        map.getPane('roles').style.zIndex = 655;
        function rol_info(o){
            resSty && roles_gj.resetStyle(resSty);
            document.getElementById('rol_num').innerHTML =  o.target.feature.properties.pk;
            var r_lay = o.target;
            r_lay.setStyle({
                pane:'roles',
                radius: 17,
                fillColor: '#cc2504',
                color: "#202020",
                weight: 3,
                opacity: 1,
                fillOpacity: 0.85
            });
            if (!L.Browser.ie && !L.Browser.opera && !L.Browser.edge) {r_lay.bringToFront();}
            resSty = r_lay

        }
        var rolesMarkerOptions = {
            pane:'roles',
            radius: 12,
            fillColor: "#FF7F00",
            color: "#202020",
            weight: 3,
            opacity: 1,
            fillOpacity: 1
        };
        var roles_gj = L.geoJson(roles , {
              pointToLayer: function (feature, latlng) {
              return L.circleMarker(latlng, rolesMarkerOptions);
          },
              onEachFeature:info_rol,
        }).addTo(map);
        function info_rol(e, r_lay) {
          r_lay.on({
            click:rol_info,
          });
          }
        var baseMaps = {};
        L.control.layers(baseMaps,{'CIP': cips_gj,'Roles':roles_gj}, {collapsed:false}).addTo(map);

rol_info не будет сбрасывать стиль после нажатия другой функции, мне нужно держать их отдельно, чтобы я мог отображать информацию для каждого слоя одновременно, не знаю, что случилось, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...