Javascript 不止一个“;oneachfeature“;传单

Javascript 不止一个“;oneachfeature“;传单,javascript,gis,leaflet,Javascript,Gis,Leaflet,我试图将两个功能组合在一个图层上,但不能同时使用它们。一个是突出显示光标悬停的位置,另一个是从弹出窗口中获取信息。我使用了这个突出显示的指南:(添加交互部分,尝试将其合并到工作信息弹出层)。此外,目前它的突出悬停,但如果它会突出显示点击。 代码: 功能样式(功能){ 返回{ fillColor:'蓝色', 体重:2, 不透明度:1, 颜色:“灰色”, dashArray:'3', 填充不透明度:0.7 }; } L.geoJson(piirid,{style:style}); 功能高亮功能(e)

我试图将两个功能组合在一个图层上,但不能同时使用它们。一个是突出显示光标悬停的位置,另一个是从弹出窗口中获取信息。我使用了这个突出显示的指南:(添加交互部分,尝试将其合并到工作信息弹出层)。此外,目前它的突出悬停,但如果它会突出显示点击。 代码:

功能样式(功能){
返回{
fillColor:'蓝色',
体重:2,
不透明度:1,
颜色:“灰色”,
dashArray:'3',
填充不透明度:0.7
};
}
L.geoJson(piirid,{style:style});
功能高亮功能(e){
var层=e.目标;
layer.setStyle({
体重:5,
颜色:'#666',
dashArray:“”,
填充不透明度:0.7
});
如果(!L.Browser.ie&&!L.Browser.opera){
层。布氏体();
}
}
功能重置突出显示(e){
geojson.resetStyle(e.target);
}
var-geojson;
// ... 我们的听众
geojson=L.geojson(piirid);
函数ZoomTof性质(e){
fitBounds(e.target.getBounds());
}
功能onEachFeature3(功能,图层){
分层({
鼠标悬停:Highlight功能,
mouseout:resetHighlight,
//单击:缩放自然
});
}
geojson=L.geojson(piirid{
风格:风格,
onEachFeature:onEachFeature,
onEachFeature:onEachFeature3
});
功能onEachFeature(功能,图层){
if(feature.properties){
layer.bindPopup(“
Aadresss:”+feature.properties.L_AADRESS+”

Maakond:“+feature.properties.MK_NIMI +“

”,{“偏移量”:[200,-50]}); } }

谢谢,Kristjan将这两个函数结合起来,它们使用相同的参数,也可以作为一个函数来完成

 function style(feature) {
        return {
            fillColor: 'blue',
            weight: 2,
            opacity: 1,
            color: 'grey',
            dashArray: '3',
            fillOpacity: 0.7
        };
    }

    L.geoJson(piirid, {style: style});

    function highlightFeature(e) {
        var layer = e.target;

        layer.setStyle({
            weight: 5,
            color: '#666',
            dashArray: '',
            fillOpacity: 0.7
        });

        if (!L.Browser.ie && !L.Browser.opera) {
            layer.bringToFront();
        }
    }

    function resetHighlight(e) {
        geojson.resetStyle(e.target);
    }

    var geojson;
    // ... our listeners
    geojson = L.geoJson(piirid);

    function zoomToFeature(e) {
        map.fitBounds(e.target.getBounds());
    }

    function onEachFeature3(feature, layer) {
        layer.on({
            mouseover: highlightFeature,
            mouseout: resetHighlight,
            //click: zoomToFeature
        });
        if (feature.properties) {
            layer.bindPopup("<br><b><big><u>Aadresss: " + feature.properties.L_AADRESS + "</br></b></big></u><br> <b>Maakond:&nbsp;</b>" + feature.properties.MK_NIMI
            + " <br><br>", {"offset":  [200, -50]});
        }
    }

    geojson = L.geoJson(piirid, {
        style: style,
        onEachFeature: onEachFeature3
    });
功能样式(功能){
返回{
fillColor:'蓝色',
体重:2,
不透明度:1,
颜色:“灰色”,
dashArray:'3',
填充不透明度:0.7
};
}
L.geoJson(piirid,{style:style});
功能高亮功能(e){
var层=e.目标;
layer.setStyle({
体重:5,
颜色:'#666',
dashArray:“”,
填充不透明度:0.7
});
如果(!L.Browser.ie&&!L.Browser.opera){
层。布氏体();
}
}
功能重置突出显示(e){
geojson.resetStyle(e.target);
}
var-geojson;
// ... 我们的听众
geojson=L.geojson(piirid);
函数ZoomTof性质(e){
fitBounds(e.target.getBounds());
}
功能onEachFeature3(功能,图层){
分层({
鼠标悬停:Highlight功能,
mouseout:resetHighlight,
//单击:缩放自然
});
if(feature.properties){
layer.bindPopup(“
Aadresss:”+feature.properties.L_AADRESS+”

Maakond:“+feature.properties.MK_NIMI +“

”,{“偏移量”:[200,-50]}); } } geojson=L.geojson(piirid{ 风格:风格, onEachFeature:onEachFeature3 });
为什么不直接使用css选择器
:hover
而不是javascript?您可以更具体一点吗?当鼠标悬停事件发生时,您可以使用css
:hover
选择器,而不是在javascript中手动设置样式。类似这样的东西:
.layer:hover{color:grey;background color:blue;…}
我实际上是在点击时得到了它,我更喜欢它,但是无论如何谢谢你的回答,仍然需要让突出显示和弹出窗口一起工作
 function style(feature) {
        return {
            fillColor: 'blue',
            weight: 2,
            opacity: 1,
            color: 'grey',
            dashArray: '3',
            fillOpacity: 0.7
        };
    }

    L.geoJson(piirid, {style: style});

    function highlightFeature(e) {
        var layer = e.target;

        layer.setStyle({
            weight: 5,
            color: '#666',
            dashArray: '',
            fillOpacity: 0.7
        });

        if (!L.Browser.ie && !L.Browser.opera) {
            layer.bringToFront();
        }
    }

    function resetHighlight(e) {
        geojson.resetStyle(e.target);
    }

    var geojson;
    // ... our listeners
    geojson = L.geoJson(piirid);

    function zoomToFeature(e) {
        map.fitBounds(e.target.getBounds());
    }

    function onEachFeature3(feature, layer) {
        layer.on({
            mouseover: highlightFeature,
            mouseout: resetHighlight,
            //click: zoomToFeature
        });
        if (feature.properties) {
            layer.bindPopup("<br><b><big><u>Aadresss: " + feature.properties.L_AADRESS + "</br></b></big></u><br> <b>Maakond:&nbsp;</b>" + feature.properties.MK_NIMI
            + " <br><br>", {"offset":  [200, -50]});
        }
    }

    geojson = L.geoJson(piirid, {
        style: style,
        onEachFeature: onEachFeature3
    });