嗨,我正在实现一个可视化编辑器,允许用户将图像拖到页面上,并将其他图像拖到这些先前拖动的图像内(有点像“添加其他图像”)。

我基本上只需要在拖动过程中使用鼠标坐标:元素隐藏等...我会基于这些坐标使用自定义函数。

问题是,在Webkit上,我可以通过event.clientX和event.clientY获取它们,而在Firefox(v.16.0.1 OSX)下,在拖动过程中,它们的“对应” pageX和pageY始终为零。

但是,在mouseMove期间它们不为零。

我很聪明,我做了一个

$(document).on(“mouseMove”,function(e){_ PX = e.pageX,_PY = e.pageY})

总是拥有最新的PageX和PageY,所以我可以在onDrag处理程序中使用它们,但是...

在拖放操作期间OnMouseMove不会触发:( :(

在DnD期间,有什么方法可以获取Mouse X和Y?我不想让我的代码过于困惑,因为它应该(并且已经可以)在不同的平台上但在Firefox上工作。

有人可以给我一些指示吗?
提前感谢。

最佳答案

抱歉,我在这里找到了答案:

How do I get clientX and clientY to work inside my "drag" event handler on Firefox?

我已经这样解决了:

(___NODRAGEVENT=$.browser.mozilla)
    && $(document)
            .on("dragover",function(e) {
                e=e.originalEvent;
                ___PAGEX=e.clientX||e.pageX;
                ___PAGEY=e.clientY||e.pageY;
             });

我真的感到惊讶和困惑,因为onDragOver确实包含clientX和clientY。他们为什么不将****填充到ondrag事件中?

关于events - FireFox onDrag Pagex PageY始终为零;(,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13110349/

10-11 17:30