在监听“ondrag”事件时,Mozilla Firefox 3.x似乎存在一个错误。事件对象不会报告被拖动对象的位置,clientX
、clientY
和其他屏幕偏移量都设置为零。
这很麻烦,因为我想基于被拖动的元素制作代理元素,并且当然要使用clientX
和clientY
来调整它的位置。
我知道有一些很酷的东西,比如HTML5中的setDragImage
,但我想为浏览器之间的本机DD提供通用抽象。
错误的代码:
document.addEventListener('drag', function(e) {
console.log(e.clientX); // always Zero
}, false);
注意:
这个问题不会在其他事件(dragstart
,dragover
)上发生,并且 mousemove
事件在拖动物品时无法被捕获。
dragover
事件作为 hack,但至少它确实有效。 - Chris Bosco