【问题标题】:openlayer2's popup can't be listen by dojo's domdojo 的 dom 无法监听 openlayer2 的弹出窗口
【发布时间】:2015-10-14 02:54:56
【问题描述】:
  1. 我显示 framePopup 如下所示:

    var framed = new OpenLayers.Popup.FramedCloud(null,new OpenLayers.LonLat(geometry.x,geometry.y),null,content,null,true,function(evt1){this .hide();});framed.autoSize = true;map.addPopup(framed, true);

2.'content' 是我通过纯代码放置按钮的部分,例如

<input type='button' id='showNaviDiv'/>
  1. 然后,我听下面这个按钮

    on(dom.byId("rcp1_map"), on.selector("#showNaviDiv", "click"), function(evt){alert();console.debug(evt);});

“rcp1_map”是地图的id。
但是监听器在弹出的 div 上不起作用。

任何建议将不胜感激。

【问题讨论】:

  • 没人发现有问题吗?
  • 请为我们提供一个 JS fiddle,以便我们查看您的代码并尝试修复它。谢谢。

标签: dojo openlayers


【解决方案1】:

假设您的 framePop 弹出窗口在初始化时将其 DOM 添加到页面上,您可以尝试通过 id 获取您的按钮并在 渲染其 DOM 之后添加事件侦听器。

require(['dojo/on','dojo/dom'], function(on, dom){
      //... when the framePop DOM is rendered
      on(dom.byId('showNaviDiv), 'click', function(e){
          // handle the event
      });
   });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多