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)