当用户将鼠标悬停在一个图标上时,这些菜单就会打开。代码中的pointrout部分工作正常(用户将鼠标悬停在菜单外,菜单关闭,图标返回到初始的非活动状态),但是pointerenter函数会导致所有菜单同时打开,而不管我将鼠标悬停在哪个菜单上。由于exit事件工作正常,我猜enter事件有问题,导致所有菜单同时打开,但我似乎不能确定它。这不是我第一次使用forEach,所以我猜它是函数内部的一些东西格式不正确。第一个
forEach
n1bvdmb61#
您的js代码正在向事件侦听器内的元素添加事件侦听器。我拆分了这两个段,在为每个.logobox调用的函数中添加了pointerenter和pointerleave的事件侦听器。然后,我还确保该函数是为父.logoContainer调用的,并且这两个段只负责分别添加和删除active类。由于我更改了传递给该函数的根元素,因此我还显式地为子.logoBox添加/删除了.active类,以便宏菜单也可以翻转/取消翻转。这是我做的唯一修改,它现在似乎工作正常。顺便说一句,我还整理了html。这是一个相当棘手的js方法,我看到在那里使用...和奇怪的是,这些logos和locations函数是这样制作的,接受一个par参数(父),你没有使用。我也确保我使用的功能,以及在您的逻辑,使它有意义。第一个
.logobox
pointerenter
pointerleave
.logoContainer
active
.logoBox
.active
logos
locations
par
1条答案
按热度按时间n1bvdmb61#
您的js代码正在向事件侦听器内的元素添加事件侦听器。
我拆分了这两个段,在为每个
.logobox
调用的函数中添加了pointerenter
和pointerleave
的事件侦听器。然后,我还确保该函数是为父
.logoContainer
调用的,并且这两个段只负责分别添加和删除active
类。由于我更改了传递给该函数的根元素,因此我还显式地为子.logoBox
添加/删除了.active
类,以便宏菜单也可以翻转/取消翻转。这是我做的唯一修改,它现在似乎工作正常。
顺便说一句,我还整理了html。
这是一个相当棘手的js方法,我看到在那里使用...和奇怪的是,这些
logos
和locations
函数是这样制作的,接受一个par
参数(父),你没有使用。我也确保我使用的功能,以及在您的逻辑,使它有意义。第一个