首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟mousemove事件

模拟mousemove事件
EN

Stack Overflow用户
提问于 2013-07-10 23:17:39
回答 1查看 394关注 0票数 0

在最新版本的OpenLayers (2.13和2.13.1)中,当光标移动到地图上时,qooxdoo中的"mousemove“文档侦听器会被阻止。我想我可以通过监听OpenLayers的" mousemove“监听器来绕过这个问题,并基于此来模拟一个mousemove事件,但他们的事件与qooxdoo正在寻找的事件是不同的。因此,我尝试使用qx.event.type.Mouse()来模拟鼠标移动事件;它部分工作,但破坏了地图平移功能并抛出此错误(未捕获TypeError:无法读取未定义鼠标的属性'pageX‘-第229行)。有什么建议吗?

代码语言:javascript
复制
// OpenLayers mousemove Listener
var events = me.map.events;
events.register("mousemove",me.map, function(e){
        var e = new qx.event.type.Mouse();
        console.log("Attempt to make a Qooxdoo mouse position at OpenLayers location", e);
        me.mouseoverPopup.placeToMouse(e);
        return true;
},true); 

// Qooxdoo document mousemove listener
//   ** this was my old standard but OL 2.13 blocks this from occurring when
//      I move over the map.
qx.bom.Element.addListener(document, "mousemove", function(e)
{         
   me.mouseoverPopup.placeToMouse(e);         
}, this);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-11 15:07:29

qooxdoo的鼠标事件需要使用原生事件对象进行初始化,以获取鼠标坐标和其他信息。试试这个:

代码语言:javascript
复制
events.register("mousemove",me.map, function(e){
        var qxE = new qx.event.type.Mouse();
        qxE.init(e);
        console.log("Attempt to make a Qooxdoo mouse position at OpenLayers location", e);
        me.mouseoverPopup.placeToMouse(qxE);
        return true;
},true); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17574482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档