Javascript 如何让clientX和clientY在我的;拖拽;Firefox上的事件处理程序?
Mozilla firefox 3.x在收听“ondrag”事件时似乎有一个bug。事件对象不报告正在拖动的对象的位置,clientX、clientY和其他屏幕偏移都设置为零。这是一个相当大的问题,因为我想在拖动元素的基础上创建一个代理元素,并使用clientX和clientY来调整其位置 我知道HTML5中有一些很酷的东西,比如setDragImage,但我想为浏览器之间的本地DD提供一个通用的抽象 错误代码:Javascript 如何让clientX和clientY在我的;拖拽;Firefox上的事件处理程序?,javascript,events,drag-and-drop,firefox-3,Javascript,Events,Drag And Drop,Firefox 3,Mozilla firefox 3.x在收听“ondrag”事件时似乎有一个bug。事件对象不报告正在拖动的对象的位置,clientX、clientY和其他屏幕偏移都设置为零。这是一个相当大的问题,因为我想在拖动元素的基础上创建一个代理元素,并使用clientX和clientY来调整其位置 我知道HTML5中有一些很酷的东西,比如setDragImage,但我想为浏览器之间的本地DD提供一个通用的抽象 错误代码: document.addEventListener('drag', functio
document.addEventListener('drag', function(e) {
console.log(e.clientX); // always Zero
}, false);
注:
此问题不会发生在其他事件(dragstart、dragover)上,并且在拖动某个事件时无法捕获mousemove事件
请帮忙 HTML 5中的拖动事件在当今的浏览器中无法完全正常工作。要模拟拖放情况,应使用:
这将节省很多时间。我找到了一个解决方案,我在文档级别为“dragover”事件设置了一个侦听器,现在我获得了正确的X和Y属性,可以通过全局共享对象公开。JQuery和Prototype只提供了模拟的D&D,这不是我想要的,原生DD比任何其他模拟解决方案都更加健壮和快速。您可以使用José提供的答案。一旦我有时间,我也会尝试找出一些与此相关的东西。我找到了一个解决方案,我在文档级别的“dragover”事件上放置了一个侦听器,现在我得到了正确的X和Y属性,我可以通过一个全局共享对象公开。在我看来,Firefox 10也出现了同样的错误。pageX和其他坐标属性也是如此。如果它不应该是这个事件的一部分,它应该是未定义的,而不是零,对吗?这很烦人。很遗憾听到您不得不将
dragover
事件用作黑客攻击,但至少这是可行的