保证onmouseout事件开火

n3r*_*3rd 11 javascript events

我目前正在开发一个Web应用程序,并遇到了一个小问题.我正在使用ExtJS,但我相信这是一个普遍的JS问题.

当光标进入HTML元素时,onmouseover触发该光标离开该元素时onmouseout触发该事件.到现在为止还挺好.不幸的是,似乎人们不能完全依赖这种行为.非常快速的鼠标移动可能导致事件无法触发(例如,使用数位板重新定位光标).

处理这些问题的最佳做法是什么?我是否需要监控所有onmousemove事件并手动跟踪光标的最后位置并自行触发相应的onmouseout事件?

Bri*_*kau 3

这是一个常见问题,解决起来并不简单。通过尝试在单个元素级别处理鼠标悬停/移出基本上是不可能解决的。使用 Ext JS,通常建议尽可能使用委托事件处理,这也有助于监视鼠标事件。例如,在可能的最高级别监视鼠标悬停/移出,并检查事件目标和/或相关目标(传递到处理函数的事件对象的属性)以找出任何给定事件期间涉及哪些元素(我已经完成了)我自己就是这样——这可能会很棘手,但很有效)。如果您的用例正在监视有效的拖/放场景,则 DragZone 和 DropZone 类旨在执行此操作。

如果您可以填写一些有关您想要完成的任务的更多详细信息,这可能会有所帮助。