我正在尝试绑定一个点击事件到一个叶片插件的扩展画布GridLayer上(使用Leaflet 1.0,其中包含Leaflet.MaskCanvas)。
根据Leaflet文档关于GridLayer的说明,我期望可以使用以下任一方式将点击绑定到
根据Leaflet文档关于GridLayer的说明,我期望可以使用以下任一方式将点击绑定到
coverageLayer
:// add event listener to determine when layer has been clicked
coverageLayer.on('click', function(e) {
console.log('clicked the line');
});
// second (alias) method to add event listener
coverageLayer.addEventListener('click', function(e) {
console.log('clicked the line');
});
但是以上两种方法似乎都不起作用。
这里是一个 JSFiddle 示例,我已经 fork 并调整了 MaskCanvas 插件的示例代码。
还有其他方法可以将 click 事件绑定到 Leaflet 中的画布层吗?
编辑:.on()
和 .addEventListener()
是别名。
之前的问题涉及 Leaflet 0.7 和 TileLayer。从 旧版 Leaflet 文档 中可以看出,TileLayer 没有这些事件。JSFiddle 代码已更新为使用 Leaflet 1.0。
L.LatLng
值的数组进行比较来解决了这个问题。如果点击位置在某个公差范围内与L.LatLng
值匹配,则认为它已经点击了该元素。虽然不太美观,但它能够正常工作。如果您找到更好的方法,请告诉我! - user2441511