我正在做类似于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 更改。 如果您能就我可能做错的事情提供一些提示,我将不胜感激。 任何见解将不胜感激。
您能否在 JSFiddle 或 Leaflet Playground 上设置一个精确的最小测试用例来重现该问题?
@mourner我将尝试一个带有一些简单 Geojson 的游乐场,看看会发生什么。 我没有在非常孤立的示例中破坏单击处理程序代码。 我什至在调试器中调试到图层对象......肯定添加了点击处理程序。 当我单击图层时,会在<img>
上触发单击事件。
我想不出任何其他影响这一点的因素。
@mourner刚刚在操场上使用 rc3 进行了尝试,原始 geojson 层仍然按预期工作......
@mourner经过一番思考,我意识到我没有将css更新到最新。 它可能导致 zIndex 级别不正确,或者不允许某些单击事件。 现在,只需将 css 更新到最新版本,一切似乎都正常了。 关闭问题。
最有用的评论
@mourner经过一番思考,我意识到我没有将css更新到最新。 它可能导致 zIndex 级别不正确,或者不允许某些单击事件。 现在,只需将 css 更新到最新版本,一切似乎都正常了。 关闭问题。