javascript - Safari、Edge 和 IE 上的 mouseenter 和 mouseleave

标签 javascript cross-browser

我写了一段js代码来触发 map 区域上的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

这段代码有什么问题?或者也许您知道另一种方法?

谢谢。

最佳答案

我用“mouseover”和“mouseout”替换了“mouseenter”和“mouseleave”,它在每个浏览器中都可以正常工作。

关于javascript - Safari、Edge 和 IE 上的 mouseenter 和 mouseleave,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50218322/

相关文章:

javascript - JavaScript 的客户端缓存如何工作?

javascript - 获取伪元素的背景样式

html - 如何为每个浏览器呈现相同的边距?

jquery - 导航菜单在 Internet Explorer 中不起作用

javascript - 单击按钮时隐藏 css 动画后的 div

javascript - 为什么我的 bundle 中的自定义 js 没有显示在自定义 View MVC5 中

javascript - 在 Javascript 中将对象作为参数传递给函数

javascript - 检查空跨浏览器的完整方法是什么

flash - Adobe 和浏览器都将终止 Adob​​e Flash 后,有什么方法可以运行 Web 应用程序

javascript - 当变量名称较小时,浏览器会更快地处理 javascript 函数吗?