Javascript 在画布上使用Dojo DND时在Chrome中获取xy坐标时遇到问题

Javascript 在画布上使用Dojo DND时在Chrome中获取xy坐标时遇到问题,javascript,jquery,drag-and-drop,dojo,mouseup,Javascript,Jquery,Drag And Drop,Dojo,Mouseup,我有一个使用Dojo框架(1.12.1)和 JQuery(2.1.4)。我正在使用Dojo DND(拖放)函数, 但是我需要在画布元素中找到一个XY偏移量,它是 DND目标下降。我能够使用JQuery对鼠标向上移动事件进行查询 在Firefox和Safari中收集偏移量,它在Chrome 51.0.2704.84中确实有效, 但这在Chrome56.0.2924.87或触摸屏(平板电脑、手机)上并不适用 我需要找到一种方法来获取画布中的XY坐标 拖放的拖放部分的目标至少为 还有Firefox。我

我有一个使用Dojo框架(1.12.1)和 JQuery(2.1.4)。我正在使用Dojo DND(拖放)函数, 但是我需要在画布元素中找到一个XY偏移量,它是 DND目标下降。我能够使用JQuery对鼠标向上移动事件进行查询 在Firefox和Safari中收集偏移量,它在Chrome 51.0.2704.84中确实有效, 但这在Chrome56.0.2924.87或触摸屏(平板电脑、手机)上并不适用

我需要找到一种方法来获取画布中的XY坐标 拖放的拖放部分的目标至少为 还有Firefox。我不知道我是否忽略了内心的某些东西 Dojo,或者在JQuery中,或者如果是特定于浏览器的 必须这样做

我正在处理的应用程序位于

我有一个JSFIDLE显示了问题:


较新版本的Chrome已经不再通过“mouseup”提供所需的偏移。相关事件现在是“pointerup”。我已经在JSFIDLE中测试过,现在可以在Chrome中使用。添加此处理程序:

$(document).on('pointerup', function(evt) {
    console.log("pointerup evt", evt);
    xy = [evt.originalEvent.offsetX, evt.originalEvent.offsetY];    
});

您应该会在console.log输出中看到相关的偏移量。我还没有用Firefox测试过它,所以您可能需要根据浏览器检测设置处理程序。

Read。这可能会有帮助。希曼殊,我想你是想关注Shane Green在那篇文章中的评论。我尝试将Green建议的“normalizeEvent”代码添加到JSFiddle中的mouseup处理程序中,得到的“position”变量在最近的Chrome中是空的,就像“xy”变量是空的一样。格林确实注意到,浏览器兼容性可能是他的方法的一个问题,看来他是对的。据我所知,链接线程在这里没有问题的答案。
$(document).on('pointerup', function(evt) {
    console.log("pointerup evt", evt);
    xy = [evt.originalEvent.offsetX, evt.originalEvent.offsetY];    
});