FireFox onDrag Pagex PageY总是为零;(

时间:2012-10-28 15:51:26

标签: events firefox drag-and-drop

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

我基本上只需要拖动时的鼠标坐标:元素hiliting等...我根据这些坐标自定义函数。

问题是,在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期间,我有什么办法可以获得鼠标X和Y吗?我不想让我的代码混乱,因为它应该(并且已经存在)在不同的平台上工作,但是在firefox上。

有人可以给我一些指示吗? 提前完成。

1 个答案:

答案 0 :(得分:6)

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

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事件中?