Javascript 浏览器在鼠标下渲染元素时是否有鼠标悬停修正?

Javascript 浏览器在鼠标下渲染元素时是否有鼠标悬停修正?,javascript,dom,browser,dom-events,Javascript,Dom,Browser,Dom Events,在大多数(所有?)浏览器中,如果浏览器在鼠标下呈现带有mouseEnter/mouseOver侦听器的元素,则不会触发事件。因此,我们现在将鼠标放在一个元素上,代码不会像鼠标放在该元素上一样运行 是否有一个简单的解决方法?您可以使用它来监视所有HTML节点,以查看可能会将页面上的元素移动到光标下的更改。当发生任何此类更改时,可以使用查找悬停的元素,然后在该元素上出现mouseover事件: 函数dispatchArtificialMouseover(){ const elementMouseIs

在大多数(所有?)浏览器中,如果浏览器在鼠标下呈现带有mouseEnter/mouseOver侦听器的元素,则不会触发事件。因此,我们现在将鼠标放在一个元素上,代码不会像鼠标放在该元素上一样运行

是否有一个简单的解决方法?

您可以使用它来监视所有HTML节点,以查看可能会将页面上的元素移动到光标下的更改。当发生任何此类更改时,可以使用查找悬停的元素,然后在该元素上出现
mouseover
事件:

函数dispatchArtificialMouseover(){
const elementMouseIsOver=document.elementFromPoint(
event.clientX,
event.clientY
);
const mouseoverEvent=新的MouseEvent(“mouseover”);
ElementMouseOver.dispatchEvent(mouseoverEvent);
}
const observer配置={
属性:正确,
儿童名单:是的,
characterData:true,
子树:真
};
const observer=新的变异观察者(dispatchArtificialMouseover);
const rootElement=document.body;
observer.observe(rootElement,observerConfig);

但是,我想,如果任何内容经常更改,例如用户在输入中键入文本,则侦听页面上的所有更改会降低页面速度。

您是否尝试过在添加动态元素后以编程方式触发鼠标悬停事件?@j08691我想找到一个解决我所看到的浏览器缺陷的通用解决方案。当我的鼠标在某个元素上时,我请求得到通知。浏览器在鼠标下渲染元素。因此,鼠标位于元素上方。我没有接到通知。这就是我想解决的问题。我可以更改我的应用程序的工作方式或编写方式。那不是我想要的。你可能把mouseover这个词理解得太字面了。mouseover事件是在移动时触发的,而不仅仅是当鼠标指针恰好位于某个元素上时。实际上,声明移动必须发生,“当定点设备移动到元素的边界上时,用户代理必须发送此事件。”因此,我不会将此称为浏览器缺陷。@j08691我熟悉规范。我指定了“我查看的是浏览器缺陷”。这是我个人的观点,我认为这是一个好的开始。显然,出于性能考虑,MutationObserver设计用于批量突变。我们还需要跟踪上一次事件调度,以确保不发送冗余更新。