Leaflet: 简单的单击处理程序不适用于 Leaflet 1.0.0-rc.3 上的 Geojson 层

创建于 2016-08-26  ·  4评论  ·  资料来源: Leaflet/Leaflet

我正在做类似于http://jsfiddle.net/tator/em9cLfk4/4/的事情

然而,这与层点击冒泡到地图点击处理程序无关。 这是关于图层单击根本不会被在 0.7.7 中正常工作的代码触发。

我将我的代码减少到只是基础平铺层 + 一个覆盖层,以确保没有任何层顺序 zindex 问题。

map.on("click") 仍然可以正常触发,但对于 GeoJson 图层无效。

function onEachFeatureHandler(feature, layer){
            layer.on('click', function(e){
                     alert("click");
           });
}

overlay = L.geoJson(GeoJSON, {
       onEachFeature: onEachFeatureHandler
});

我还尝试了两种不同的方法来执行 layer.on("click"),或者作为字符串单击,或者添加 {"click": handlerFuncName}。 它并没有像预期的那样产生影响。

我尝试在叠加层之前/之后添加基础平铺层,但没有任何改变。 我还删除了地图上的点击处理程序以避免事件冲突。 所以我最终得到了一张只有瓦片+叠加层和一键事件处理程序的地图,但仍然没有任何东西会触发。 鼠标光标表示该图层根本不可点击。

我还修改了叠加层的颜色,以确保它被正确添加到地图对象中。 它位于切片图层的顶部。

这发生在 Mac 上的最新 Chrome v52 和 Safari 9 中。

在尝试了将近 4 个小时之后……我怀疑我的代码可能有些愚蠢,或者我在更改日志中遗漏了一些 API 更改。 如果您能就我可能做错的事情提供一些提示,我将不胜感激。 任何见解将不胜感激。

最有用的评论

@mourner经过一番思考,我意识到我没有将css更新到最新。 它可能导致 zIndex 级别不正确,或者不允许某些单击事件。 现在,只需将 css 更新到最新版本,一切似乎都正常了。 关闭问题。

所有4条评论

您能否在 JSFiddle 或 Leaflet Playground 上设置一个精确的最小测试用例来重现该问题?

@mourner我将尝试一个带有一些简单 Geojson 的游乐场,看看会发生什么。 我没有在非常孤立的示例中破坏单击处理程序代码。 我什至在调试器中调试到图层对象......肯定添加了点击处理程序。 当我单击图层时,会在<img>上触发单击事件。

我想不出任何其他影响这一点的因素。

@mourner刚刚在操场上使用 rc3 进行了尝试,原始 geojson 层仍然按预期工作......

@mourner经过一番思考,我意识到我没有将css更新到最新。 它可能导致 zIndex 级别不正确,或者不允许某些单击事件。 现在,只需将 css 更新到最新版本,一切似乎都正常了。 关闭问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

frankjar picture frankjar  ·  4评论

JonnyBGod picture JonnyBGod  ·  4评论

timwis picture timwis  ·  3评论

viswaug picture viswaug  ·  4评论

prbaron picture prbaron  ·  3评论