悬停处于活动状态时无法选择矢量
Unable to select vector when hover is active
好吧,我想要一个悬停时漂亮的弹出窗口,但我也希望向量可选。如果我跳过悬停部分,它就像魅力一样工作,但除此之外:/我错过了什么吗?
vectors.removeAllFeatures();
var geojson_format = new OpenLayers.Format.GeoJSON();
vectors.addFeatures(geojson_format.read(data));
var selectCtrl = new OpenLayers.Control.SelectFeature(vectors,
{
clickout: true
});
map.addControl(selectCtrl);
selectCtrl.activate();
vectors.events.on({
"featureselected": featureSelected
});
var hover = new OpenLayers.Control.SelectFeature(vectors,{
hover: true,
highlightOnly: true,
eventListeners: {
featurehighlighted: featureHover,
featureunhighlighted: featureUnHover
}
});
map.addControl(hover);
hover.activate();
我只是以错误的顺序编写了代码。map.addControl(hover); hover.activate();
应该在之前
map.addControl(selectCtrl);
selectCtrl.activate();
vectors.events.on({
"featureselected": featureSelected
});
所以,现在它有效了!
这真的有效吗,因为在我看来,一旦你用 OpenLayers.Control.SelectFeature 创建了 2 个 map.addControl,就有 1 个不起作用。事实上,我有两层,一个总线层和一个总线停止层。 当我全部激活它们时,只有总线层上的悬停有效。 当我不激活母线层的控制时,母线停止层突然起作用。 所以他们都单独工作。 您在这里的问题与我在这里找到的唯一一个有 2 个 addControl 行的问题有关。 我也尝试使用自动激活,但结果相同。
更新
它实际上是打算不再工作,显然您无法创建 2 个控制功能。 相反,您需要创建一个并将其应用于两个图层。 如文档中所述,在 2.7 中删除了对此的支持。 有一个很好的例子说明如何使用 2 个不同的矢量层来做到这一点。这花了我几天时间才意识到。 您只需要在弹出窗口中确定您所在的图层并采取相应的行动即可。
相关文章:
- 在Angular 2中布线期间保持零部件处于活动状态
- 如何使bxslider仅在移动视图中处于活动状态
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- 使用纯javascript而非jquery使所选选项卡处于活动状态并保持非活动状态
- 我如何为列出的选项卡元素编写一个Protractor测试,它会检查它是否's是否处于活动状态
- 返回上一页时,Javascript仍处于活动状态
- Angular+bootstrap ui,检查当前选项卡是否已处于活动状态
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- 禁用永久活动状态
- 单击我网站中的链接时打开新选项卡,保持当前选项卡处于活动状态
- 网页在等待 AJAX 响应时变为非活动状态
- 广告拦截处于活动状态,然后不要打开超链接到新标签
- 如何创建至少 1 个框处于活动状态的复选框列表
- 如何使按钮具有 :活动状态 1 秒
- 查看CSS:invalid选择器当前是否在JavaScript中处于活动状态
- 悬停处于活动状态时无法选择矢量
- 我想在从下拉列表中选择其他选项时激活一个文本框,否则它将保持不活动状态
- 在IE上组合了活动状态伪类和相邻元素选择器
- 如何防止jquery动画在选择框处于活动状态时触发
- 当选择另一个TD课程时,TD课程保持活动状态