safari、edge 和 IE 上的 mouseenter 和 mouseleave

Posted

技术标签:

【中文标题】safari、edge 和 IE 上的 mouseenter 和 mouseleave【英文标题】:mouseenter and mouseleave on safari, edge and IE 【发布时间】:2018-05-07 16:06:30 【问题描述】:

我写了一个js代码来触发地图区域的mouseenter和mouseleave。 它在 Chrome 和 Firefox 中运行良好,但在 Safari、Edge 和 IE 中运行良好。

我真的不明白为什么。

这是我的javascript

var areas = document.getElementsByTagName('area');

// set event listener for all objects
for (var i = 0; i < areas.length; i++) 
    areas[i].addEventListener('mouseenter', inArea);
    areas[i].addEventListener('mouseleave', outArea);


// On mouse enter
function inArea() 
    console.log('mouseenter');


// On mouse leave
function outArea() 
    console.log('mouseleave');

你可以在这里玩:https://codepen.io/fantomette/pen/pVdLwM

这段代码有什么问题?或者你知道其他方法吗?

谢谢。

【问题讨论】:

以什么方式不起作用?它在开发者控制台中产生错误?没有功能也没有错误?它是否仅在该 codepen 站点上失败,或者您是否在实际应用程序中尝试过它也失败了? 感谢您的回答。我在 Safari、Edge 和 IE 的控制台中看不到 console.log。控制台没有错误。它在 codepen 和我的网站上失败了。 【参考方案1】:

我将“mouseenter”和“mouseleave”替换为“mouseover”和“mouseout”,它在每个浏览器中都能正常工作。

【讨论】:

以上是关于safari、edge 和 IE 上的 mouseenter 和 mouseleave的主要内容,如果未能解决你的问题,请参考以下文章

IE、Edge 和 Safari 中 document.querySelectorAll 的兼容性

Http/2 站点仅在 Safari 9 上无法加载 - 在 Chrome、IE、Edge、Firefox 上加载正常

[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器

浏览器各个版本和系统(chrome/safari/edge/qq/360)

水平 scrollLeft 在 IE 和 Edge 上不起作用?

IFRAME:在 IE 和 Edge 中的悬停无法按预期工作