javascript - 停止 OpenLayers 2 中的事件?

标签 javascript events openlayers

我有一张带有功能的 map 。我想点击功能并对“featureselected”使用react。 我还希望能够单击 map 中的其他位置。

  OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {                
    defaultHandlerOptions: {
        'single': true,
        'double': false,
        'pixelTolerance': 0,
        'stopSingle': false,
        'stopDouble': false
    },
    initialize: function(options) {
        this.handlerOptions = OpenLayers.Util.extend(
            {}, this.defaultHandlerOptions
        );
        OpenLayers.Control.prototype.initialize.apply(
            this, arguments
        ); 
        this.handler = new OpenLayers.Handler.Click(
            this, {
                'click': this.trigger
            }, this.handlerOptions
        );
    }, 
    trigger: function(evt) {
        // do things
    }
  });



    var click = new OpenLayers.Control.Click();
    selectControl = new OpenLayers.Control.SelectFeature(vector);
    _map.addControl(selectControl);
    selectControl.activate();
    _map.addControl(click);
    click.activate();
    vector.events.on({
        'featureselected': onSelect,

单击该功能时,我不想调用 map 的单击功能。 我必须在 onSelect 中调用什么来防止事件传播、冒泡? 现在,当我单击某个功能时,这两个函数都会被调用。 我尝试了OpenLayers.Event.stop(evt),发现evt.cancelBubble,找不到evt.Bubbles

非常感谢, 罗波

最佳答案

我有一个带有 MouseOver-Control(矢量)、SelectFeature(矢量)的 OpenLayers map ,还有一个在未找到任何内容的情况下搜索 GetFeatureInfo-Requests 和单击位置的 Click-Event。

它可能会帮助您在 selectControl 之前添加 Click-Control。

我的初始化函数大致如下所示,按以下顺序排列:

oMouseOverCtrl = new OpenLayers.Control.SelectFeature( oMouseOverVectorArray, { ... });
oMapObj.addControl( oMouseOverCtrl );
oMouseOverCtrl.activate(); 

oMouseClickControl = new OpenLayers.Control.SelectFeature( oMouseOverVectorArray, { ... });
oMapObj.addControl( oMouseClickControl );
oMouseClickControl.activate();

oMouseClickControlInfotool = new OpenLayers.Control.WMSGetFeatureInfo({...});
oMapObj.addControl( oMouseClickControlInfotool );
oMouseClickControlInfotool.activate();

关于javascript - 停止 OpenLayers 2 中的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27947267/

相关文章:

javascript - React-Native-Navigation:未定义已使用但尚未注册

javascript - 使用 sinon 测试 React PropTypes

javascript - Openlayers - 禁用图层上的平移

javascript - Vue.js 组件父事件

openlayers - 在 openlayers map 上水平添加两个自定义按钮

javascript - 在我的本地驱动器上使用 openlayers 显示 kml 文件

php - Javascript 无法从 PHP 获取 JSON 数据

javascript - Masonry 插件在 Chrome 中无法运行

events - Ember : Specify a target action view for an action helper, 除了包含 View 或父 View 之外

c# - 为什么未使用的事件参数需要赋值?