5

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

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

问题是,在 Webkit 上,我可以使用event.clientXand来获取它们event.clientY,在 Firefox (v.16.0.1 OSX) 下,它们的“对应物”在我的拖动过程中始终为零pageXpageY

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

我很聪明,我做了一个

$(document).on("mouseMove",function(e){__PX=e.pageX,__PY=e.pageY});

总是有最新的pageXpageY所以我可以在onDrag处理程序中使用它们但是......

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

有什么方法可以在 DnD 期间获得鼠标 X 和 Y?我不想让我的代码过于混乱,因为它已经可以在不同的平台上运行,但不能在 Firefox 上运行。

4

1 回答 1

8

我在这里找到了答案

我已经这样解决了:

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

我真的很惊讶和困惑,onDragOver确实包括clientXand clientY。为什么他们不在拖动事件中填充它们?

于 2012-10-28T16:16:44.903 回答