我已经使用Angular中的指令实现了一个简单的拖放系统.它在Chrome中运行良好,但Firefox不会在拖动事件上公开event.clientX,event.clientY属性(他们只是拒绝修复它).所以我正在寻找一个在拖动事件上公开这些属性的好方法:
对于拖动事件的视觉反馈需要x,y坐标.
代码在这里:
http://plnkr.co/edit/ApeyQ4FcdsA8Ez18Roi0?p=preview
在Chrome和Firefox中查看问题.
在Chrome中,拖动文件夹中的项目,您将在鼠标后显示与视觉反馈相同的项目,而不是在Firefox中(因为Firefox在拖动事件中不支持e.clientX和e.clientY).
问题出在这里:(第45行)
.on('drag', function(e) {
if (e.originalEvent.clientX) {
el.css({
'top': e.originalEvent.clientY + 10,
'left': e.originalEvent.clientX + 10
});
} else {
el.css('display', 'none');
}
});
Run Code Online (Sandbox Code Playgroud)
那么如何在Firefox中的拖动事件中获取鼠标在屏幕上的位置(角度方式,我的意思是指令,没有全局变量或其他)?

嗨,我正在实现一个可视化编辑器,允许用户将图像拖到页面上,并将这些先前拖动的图像中的其他图像拖动(类似于"添加另一个图像").
我基本上只需要在拖动过程中使用鼠标坐标:元素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上.
任何人都可以给我一些指示吗?Thanx提前.