Javascript 备选方案:onmousemove
Chrome浏览器中的一个问题导致我目前正在为一个网站构建的功能出现了很多问题。在应用程序中,如果onmousemove事件作为onmousedown事件同时触发,则会附加一个类,该类将禁用意外链接跟踪,因为用户正在拖动DOM元素。但是,如果启动了onmousedown事件,并且没有任何移动,则只需单击一次,它就会跟随链接Javascript 备选方案:onmousemove,javascript,jquery,google-chrome,svg,Javascript,Jquery,Google Chrome,Svg,Chrome浏览器中的一个问题导致我目前正在为一个网站构建的功能出现了很多问题。在应用程序中,如果onmousemove事件作为onmousedown事件同时触发,则会附加一个类,该类将禁用意外链接跟踪,因为用户正在拖动DOM元素。但是,如果启动了onmousedown事件,并且没有任何移动,则只需单击一次,它就会跟随链接 这在除Chrome之外的所有东西上都能完美地工作,因为它错误地将onmousedown事件解释为在JavaScript和jQuery中都发生的onmousemove事件。我曾
这在除Chrome之外的所有东西上都能完美地工作,因为它错误地将onmousedown事件解释为在JavaScript和jQuery中都发生的onmousemove事件。我曾考虑添加一个计时器来确定用户按下鼠标按钮的时间,以区分单击和拖动之间的区别,但这似乎是一个效率低下且可能容易出错的选项。在Chrome修复此错误之前,如果您有任何想法,我将不胜感激。问题似乎更多地在于文本区域有一个滚动条,可以自动滚动到最新位置,而不是直接使用鼠标。该框滚动显示鼠标移动。为我们提供一个代码示例来说明您的确切问题,也许womeone可以想出一个解决方法。试着在他们的示例中禁用滚动来了解我的意思,这个框只是一个示例,有人专门设置它来轻松演示这个bug,但是如果没有它,它也会发生。不幸的是,我无法将所有代码发布到网上,但我使用youngpup的dom-drag.js来实现拖动功能。我已经决定在此期间使用window.setTimeout作为修复程序。当它在onmousedown上检测到时,它将moveTimeout设置为window.setTimeout'disableLinks',150;然后在触发onmouseup事件时清除超时并删除该类。这不是最优雅的解决方案,但在目前看来是最好的选择。