Leaflet如何理解参数''在Choropleth教程?

时间:2014-09-05 02:57:20

标签: leaflet

我正在尝试理解JS in this热门教程。

本教程的本质是这个函数,它将参数'e'传递给函数。 '' target属性是该函数的自引用层。

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

JavaScript如何理解'e'?当回调函数时,没有参数作为事件监听器中的变量传递给函数。

function onEachFeature(feature, layer) {
    layer.on({
        mouseover: highlightFeature,
        mouseout: resetHighlight,
        click: zoomToFeature
    });
}

1 个答案:

答案 0 :(得分:2)

http://leafletjs.com/examples/choropleth.html ...

  

首先,我们将为图层鼠标悬停事件定义一个事件监听器

e是鼠标悬停事件

所以序列就像那样

  1. GeoJSON图层找到要素并从中创建图层
  2. 每次创建图层(例如L.Polygon)时,都会使用 onEachFeature
  3. 回叫您
  4. 您可以将事件监听器附加到图层(例如鼠标悬停)
  5. 稍后,当此图层收到鼠标悬停事件时,会将事件(e)发回给您
  6. 注意:如果您在从图层接收鼠标悬停事件时需要geojson要素属性,请将它们保存在 onEachFeature 回调

    中的图层对象中
    layer.properties = feature.properties;
    

    查看此JSFiddle,其中颜色是在geojson属性中定义的