我正在尝试实现拖放脚本,但遇到了一个问题。当您拿起一个项目并开始拖动它时 - 该项目就在您的光标正下方并且 onmouseover 事件很少会在下面的项目上触发。但是我希望其他项目在我将某些东西拖到它们上面时突出显示。解决方案之一是根本不拖动任何东西 - 这样鼠标事件就可以工作,但看起来很难看。有没有人做过这样的事情并且知道如何克服这个问题?
如果您正在考虑推荐一些 JQuery 插件或类似的东西 - 请不要。我不需要完整的解决方案,这是有教育意义的。
最佳答案
IMO,为了让 mouseover
事件频繁触发,将 mouseover
事件绑定(bind)到所有元素的 parent
元素受影响的元素,或者可能是 document
本身,因为事件冒泡了,它们可能是唯一可以触发 mouseover
事件的元素。
然后,在您的mouseover
事件中编写一个hit
方法并主动检查鼠标光标的位置,看它是否在目标元素的边界下方。可用性和性能的权衡。您选择。
我的 2cents。
或者,您可以对 jQuery UI
进行逆向工程,看看它们是如何实现拖动元素的。还没有检查过,但我认为应该有更明智的方法。
关于拖动时的javascript鼠标悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4497251/