Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将内容悬停在两个元素上显示_Javascript - Fatal编程技术网

Javascript 将内容悬停在两个元素上显示

Javascript 将内容悬停在两个元素上显示,javascript,Javascript,所以我有一个菜单,在悬停状态下显示一个包含所有页面链接的容器。我使用javascript使它在菜单项的悬停处可见。看起来是这样的: 在菜单项的悬停处,它看起来像这样 问题是当我将鼠标移到容器上,单击它将显示的链接时:再次无 这是我的javascript代码: var topbestemmingen = document.getElementById('menu-topbestemmingen'); document.querySelectorAll('#menu-link

所以我有一个菜单,在悬停状态下显示一个包含所有页面链接的容器。我使用javascript使它在菜单项的悬停处可见。看起来是这样的:

在菜单项的悬停处,它看起来像这样

问题是当我将鼠标移到容器上,单击它将显示的链接时:再次无

这是我的javascript代码:

    var topbestemmingen =  document.getElementById('menu-topbestemmingen');

    document.querySelectorAll('#menu-link-topbestemmingen').forEach(el => 
    el.addEventListener('mouseover', function() {
        topbestemmingen.classList.add('active');
    }))

    document.querySelectorAll('#menu-link-topbestemmingen').forEach(el => 
    el.addEventListener('mouseout', function() {
        topbestemmingen.classList.remove('active');
    }))

因此,容器具有ID#menu-toppestemmingen,链接位于menu#menu-link-toppestemmingen中。有人知道如何选择要在悬停时显示的容器吗?

尝试将鼠标悬停->激活添加到#菜单topbestemmingen,并停用鼠标悬停。因此,应该有四个事件侦听器

但我建议在“链接菜单”和“关闭菜单”下添加一个层,然后将事件侦听器添加到该层,以便关闭菜单

var-topbestemmingen=document.getElementById('menu-topbestemmingen');
document.querySelectorAll(“#菜单链接topbestemmingen”).forEach(el=>
el.addEventListener('mouseover',function(){
topbestemmingen.style.display='block'
}))
document.querySelectorAll(“#菜单链接topbestemmingen”).forEach(el=>
el.addEventListener('mouseout',function(){
topbestemmingen.style.display='none'
}))
document.queryselectoral(“#menu toppestemingen”).forEach(el=>
el.addEventListener('mouseover',function(){
topbestemmingen.style.display='block'
}))
document.queryselectoral(“#menu toppestemingen”).forEach(el=>
el.addEventListener('mouseout',function(){
topbestemmingen.style.display='none'
}))
#菜单顶部最佳菜单{
显示:无;
}

链接菜单项
项目1
项目2
项目3
项目4

请在在线平台上分享此问题,以便更清楚地理解。您可以在中共享代码吗?您不应该多次使用ID属性。相反,您可以使用自定义属性,例如,
数据菜单topbestemmingen
。听起来子菜单不在您悬停的项目内,因此会触发鼠标出。所以需要一种方法来告诉代码鼠标在子元素上。通常会有更多的事件侦听器。请在您的问题中创建一个。我认为会有/应该有一个“更干净/更好”的方法,但这也非常有效。我会像这样使用它,谢谢!