0

我遇到了一个可能是 Chrome 中的错误的问题,但我希望一些更有经验的开发人员可以看看这个问题。我正在使用youngpup(https://github.com/aboodman/dom-drag/blob/gh-pages/dom-drag.js)的dom-drag JavaScript库,并注意到它在Chrome中无法正常运行。错误发生在第 86 行。

出于某种原因,即使鼠标没有移动,Chrome 也会注册 document.onmousemove 事件。我在其他所有浏览器上都试过了,Chrome 是唯一一个导致用户单击时触发事件的浏览器。这会被认为是一个错误吗?如果是这样,有人可以推荐一个解决方法来解决这个问题吗?

4

1 回答 1

0

我使用的是 drag.js,我遇到了同样的问题。我可以从 PlantTheldea 2 年前提供的链接中看到,chrome 并没有修复它。在我这边,我的 DOM 中有可拖动的项目,它们应该接受点击事件处理程序。但是如果鼠标没有移动,则在单击事件期间触发 onmousemove 事件。这个错误发生在 Chrome 上。

所以我想其他人可能会面临同样的问题。以下是我使用 drag.js 解决的方法:

1 - 转到您的 onmousemove 处理程序

2 - 检查 X 或 Y 是否有移动。如果有任何移动,则返回 true。

我编辑的 drag.js 处理程序的示例:

// onmousemove handler for the document level
// activated after left mouse button is pressed on draggable element
handler_onmousemove = function (e) {
        if(e.movementX === 0 && e.movementY == 0){
            // No movement detected
            return true; // We can continue with other handlers as click
        }

希望它可以提供帮助。

于 2015-06-06T09:00:01.617 回答