Javascript 如何捕获对特定传单层的单击
我想这个问题说明了一切。 我在用传单。我正在地图上加载三层 然而,我找不到一种方法来知道我在点击地图后点击了哪一层。 基本上是因为没有在层上设置事件处理程序,只在映射上设置 我还尝试将图层添加到功能组中,并将单击事件添加到此功能组中。但是,单击地图不会导致任何事件/响应 这就是我在featureGroup中所做的:Javascript 如何捕获对特定传单层的单击,javascript,leaflet,Javascript,Leaflet,我想这个问题说明了一切。 我在用传单。我正在地图上加载三层 然而,我找不到一种方法来知道我在点击地图后点击了哪一层。 基本上是因为没有在层上设置事件处理程序,只在映射上设置 我还尝试将图层添加到功能组中,并将单击事件添加到此功能组中。但是,单击地图不会导致任何事件/响应 这就是我在featureGroup中所做的: addWaterNameLayers: function() { var knownWaters = L.tileLayer.wms(getGeoServer('wms',
addWaterNameLayers: function() {
var knownWaters = L.tileLayer.wms(getGeoServer('wms', geoEnviroment), {
layers: this.wmsLayers.known.name,
format: 'image/png',
opacity: 0,
styles: 'cursor: pointer',
transparent: true,
attribution: ""
});//.addTo(this.mapInfo);
var unknownWaters = L.tileLayer.wms(getGeoServer('wms', geoEnviroment), {
layers: this.wmsLayers.unknown.name,
format: 'image/png',
opacity: 0.3,
styles: '',
transparent: true,
attribution: ""
});
L.FeatureGroup(knownWaters, unknownWaters).on('click', function(event) {
console.log('click');
this.handleClick(event);
},this);
//this part will work on mapclick, so on featuregroup it should work?
//when clicking on the map
/*
this.mapInfo.on('click', function(event) {
this.handleClick(event);
}, this);
*/
},
在上面的代码中,您还可以看到te映射上的单击事件。。。那一个有效。
在featuregroup上没有
此外,当我将featureGroup的代码更改为这些时,它也将不起作用:
var featGr = L.FeatureGroup(knownWaters, unknownWaters).on('click', function(event) {
this.handleClick(event);
},this);
var featGr = L.FeatureGroup(knownWaters, unknownWaters);
featGr.on('click', function(event) {
this.handleClick(event);
},this);
将featureGroup添加到图层也不会起任何作用 把你的图层放进去。L.FeatureGroup是添加事件的扩展。它还支持clickevent,这正是您需要的。检查文档:
事件。层是层数据
event.originalEvent.path[0]
是您单击的元素thnx,但我确实将其放在了功能组中,但是我无法捕获单击。我会再试一次,只是为了确定。我不知道你说的是(wms)提线工。当然,这永远不会对瓷砖工起作用,因为它们是重叠的图像。除了上面的当前可见层,您永远不会得到其他结果。我对此感到震惊;)那么,除了在层上迭代之外,没有别的事可做了吗?你找到解决这个问题的方法了吗?我也有同样的问题…对于WMS层,您需要迭代,但已经有一段时间了,所以记不起来了。