首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在mouseout/mouseleave上显示活动的子菜单?

在mouseout/mouseleave上显示活动的子菜单可以通过以下几个步骤来实现:

  1. 首先,为父菜单添加一个鼠标移出事件监听器,可以是mouseout或mouseleave事件。
代码语言:txt
复制
parentMenu.addEventListener('mouseout', hideSubMenu);
  1. 创建一个函数hideSubMenu,在函数中隐藏子菜单。
代码语言:txt
复制
function hideSubMenu() {
  // 隐藏子菜单的代码
}
  1. 然后,在hideSubMenu函数中,判断鼠标是否离开了父菜单或进入了子菜单。可以使用event对象的相关属性来进行判断。
代码语言:txt
复制
function hideSubMenu(event) {
  // 判断鼠标离开的目标是否是父菜单或子菜单
  if (!parentMenu.contains(event.relatedTarget)) {
    // 隐藏子菜单的代码
  }
}
  1. 如果鼠标离开的目标不是父菜单或子菜单,那么就隐藏子菜单。隐藏子菜单的方式可以根据具体需求选择,可以使用CSS的display属性、visibility属性或者动画效果。
  2. 如果需要在子菜单上进行交互操作,例如点击子菜单的选项,可以添加一个鼠标移入事件监听器,当鼠标移入子菜单时,取消隐藏子菜单的操作。
代码语言:txt
复制
subMenu.addEventListener('mouseover', cancelHideSubMenu);
  1. 创建一个函数cancelHideSubMenu,在函数中取消隐藏子菜单的操作。
代码语言:txt
复制
function cancelHideSubMenu() {
  // 取消隐藏子菜单的代码
}

通过以上步骤,当鼠标移出父菜单时,子菜单会被隐藏起来,当鼠标移入子菜单时,子菜单会保持显示状态,直到鼠标移出子菜单并移出父菜单时,子菜单才会隐藏。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript鼠标事件细讲:执行顺序+注意事项+区别比对

当用户焦点在按钮并按了 Enter 键时,同样会触发这个事dblclick:双击鼠标左键时发生,如果右键也按下则不会发生contextmenu :弹出右键菜单。...mouseout:鼠标在元素移开时触发 mouseout 事件。mouseleave:鼠标在元素移开时触发 mouseleave 事件。...区别点:mouseenter不会冒泡,简单说,它不会被它本身元素状态影响到.mouseover就会被它元素影响到,在触发元素时候,mouseover会冒泡触发它父元素....',()=>console.log('mouseleave'))    test.addEventListener('mouseout',()=>console.log('mouseout'))    ...需要注意是:移动端,普通元素是不会触发 focus 与blur,只有表单元素才会触发,input输入框执行顺序是 tochstart -》touchend-》-》mousedown-》focus-

3.6K21
  • JQuery几个mouse事件区别和用法

    mouseout:鼠标在元素移开时触发 mouseout 事件。 mouseleave:鼠标在元素移开时触发 mouseleave 事件。...mouseup 和 mousedown 没什么好解释,主要说一下 mouseover 和 mouseenter ; mouseoutmouseleave 区别。...但是今天在写一个QQ在线客服插件时出现了问题,我写了一个 0.3秒 动画效果,鼠标划入显示,划出隐藏,鼠标在上面移动时,插件不停地显示隐藏好多次。...原来这两个组合是由区别的,一个单独元素时效果几乎是一样,问题就在于它们元素。...打印结果如下图, mouseover 和 mouseout 在包含元素情况下会多次触发,mouseover 即使不包含元素也会不断触发,mouseenter 在鼠标划入时触发一次,mouseleave

    2.6K00

    JQ事件和事件对象

    () 鼠标按下和松开事件    5 mouseover()/mouseout() 鼠标移入和移出事件   6 mouseenter()/mouseleave() 鼠标移入移出事件   //mouseover...()/mouseout()和mouseenter()/mouseleave()区别    首先来了解一下事件冒泡和捕获     事件冒泡:内部事件先触发,然后在触发外部事件     事件捕获:外部事件先被触发...,然后在触发内部元素     mouseover()/mouseout() :鼠标移入“所选元素以及后代都会触发”     mouseenter()/mouseleave():鼠标移入“所选元素”才会触发...  focusin可以在父元素检测元素获得焦点情况 而focusout可以在父元素检测元素失去焦点情况  四 其他事件   1 scroll()滚动滚动条时触发事件      2  resize...event.pageX/event.pageY   鼠标相对于文件左侧和顶部位置   //会随着滚动条变化而变化           //screenX/screenY  获取显示器屏幕位置坐标

    4.1K20

    js鼠标事件 clientX、clientY、offsetX、offsetY、layerX、layerY、pageX、 pageY、screenX、screenY「建议收藏」

    mouseout 鼠标滑出 mouseenter 鼠标进入 mouseleave 鼠标离开 contextmenu 右键菜单 注意: 执行顺序:mousedown —> mouseup —> click...区别:mouseover和mouseout元素也会触发,可以冒泡触发 区别:mouseenter和mouseleave是针对侦听对象触发,阻止了冒泡 阻止鼠标的默认事件 e.preventDefault...,y clientX和clientY与x,y一样,都是客户区域坐标,指鼠标的坐标,以浏览器显示区域左上角开始,x,y是新浏览器支持 以下截图打印结果都是div2元素左上顶点(从边框开始)位置坐标...相对页面左上角距离 screenX screenY screenX screenY 相对屏幕左上角位置 总结: clientX和clientY与x,y一样,以浏览器显示区域左上角开始...发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    2.8K20

    js 鼠标事件总结

    当监听鼠标事件时,会触发一些事件,我们可以与之交互: mousedown 按下鼠标按钮触发 mouseup 鼠标按钮被释放 click 点击事件 dblclick 双击事件 mousemove 当鼠标移动到元素时...,鼠标移动 mouseover 当鼠标移动到一个元素或它一个元素时,鼠标悬停。...mouseenter 当鼠标移动到一个元素时,鼠标进入。类似于mouseover但不冒泡。 mouseout 当鼠标移出元素时,以及当鼠标进入元素时。...mouseleave 当鼠标移出一个元素时,mouseleave。类似于mouseout但不冒泡。 contextmenu 快捷菜单当快捷菜单打开时,例如用鼠标右键点击 事件重叠。...buttons 按钮(如果有),表示在任何鼠标事件按下按钮数字。 clientX / clientY 无论是否滚动,鼠标指针相对于浏览器窗口x和y坐标。

    9.1K40

    ReactPortals传送门

    ReactPortals传送门 React Portals提供了一种将节点渲染到父组件以外DOM节点解决方案,即允许将JSX作为children渲染至DOM不同部分,最常见用例是组件需要从视觉脱离父容器...但是在这之前,我们来重新看一下MouseEnter与MouseLeave以及对应MouseOver与MouseOut原生DOM事件。...例如,如果有一个嵌套DOM结构,此时我们在元素a绑定了MouseOut事件,当鼠标从该元素内部移动到外部时,MouseOut事件将被触发...避免重复触发: MouseOver和MouseOut事件在鼠标悬停在元素内部时会重复触发,当鼠标从一个元素移动到其元素时,MouseOut事件会在父元素触发一次,然后在元素触发一次,MouseOut...当然究竟使用MouseEnter/MouseLeave还是MouseEnter/MouseLeave事件还是要看具体业务场景,如果需要处理鼠标移入和移出元素元素时或者需要利用冒泡机制来实现功能,那么

    25050

    jQuery:详解jQuery中事件(二)

    ).next().show(); //获取并显示“内容”元素 }).bind("mouseout", function(){ $(this).next().hide();...mouseoutmouseleave   不论鼠标指针离开被选元素还是任何元素,都会触发 mouseout 事件。   只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。   ...简单说,mouseover和mouseout会引起触发区域更大,mouseenter和mouseleave只能针对绑定元素来触发。   ...上篇有过下面的一个例子,在其中如果要连续单击“标题”链接,实现“内容”隐藏和显示效果,那么按照之前做法就需要在绑定“click”事件时候判断当前“内容”部分是隐藏还是显示,然后进行相反操作,显然就麻烦多...那么在单击元素A时候,会依次触发三个click事件;单击元素B时候,会依次触发两个click事件。

    2.2K30

    第79天:jQuery事件总结(二)

    this).next().show(); //获取并显示“内容”元素 4 }).bind("mouseout", function(){ 5 $(this).next().hide...mouseoutmouseleave   不论鼠标指针离开被选元素还是任何元素,都会触发 mouseout 事件。   只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。   ...简单说,mouseover和mouseout会引起触发区域更大,mouseenter和mouseleave只能针对绑定元素来触发。   ...上篇有过下面的一个例子,在其中如果要连续单击“标题”链接,实现“内容”隐藏和显示效果,那么按照之前做法就需要在绑定“click”事件时候判断当前“内容”部分是隐藏还是显示,然后进行相反操作,显然就麻烦多...那么在单击元素A时候,会依次触发三个click事件;单击元素B时候,会依次触发两个click事件。

    1.6K20

    JQuery之内置函数响应事件

    它发生在当前获得焦点元素。注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。...如果鼠标指针穿过任何元素,同样会触发 mouseover 事件。 3.mouseleave  当鼠标指针离开元素时,会发生 mouseleave 事件。...与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何元素,同样会触发 mouseout 事件。...mousemove事件处理函数会被传递一个变量——事件对象,其.clientX 和 .clientY 属性代表鼠标的坐标 5.mouseout 当鼠标指针从元素移开时,发生 mouseout 事件。...注释:与 mouseleave 事件不同,不论鼠标指针离开被选元素还是任何元素,都会触发 mouseout 事件。只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。

    2.1K60

    DOM事件

    , 12 4月 2021 作者 847954981@qq.com 前端学习, 我编程之路 DOM事件 要做一个动态网页,那就必须要网页拥有动态活动,因此对于网页DOM对象,我们需要获取其中事件来做出相应活动...节点名.addEventListener('事件名', function () {}); 利用此方法可以获取节点发生事件,并在之后function中对事件做出反应。...mouseenter: 指针移到有事件监听元素内。 mouseleave: 指针移出元素范围外(不冒泡)。 mousemove: 指针在元素内移动时持续触发。...mouseover: 指针移到有事件监听元素或者它元素内。 mouseout: 指针移出元素,或者移到它元素。 mouseup: 在元素释放任意鼠标按键。...操作中更改样式属性方法,来实现动态化 事件冒泡 在JavaScript有一种情况,当你同时在父亲节点和节点同时设置监听事件,当你触发了节点监听事件,父节点事件也会被触发,这种现象叫做事件冒泡。

    76530

    js编程笔记之事件异常

    非视觉)嵌套关系元素,会存在事件冒泡功能,即同一事件, 自元素冒泡向父元素。...(自底向上) 复制代码 事件捕获: 结构(非视觉)嵌套关系元素,会存在事件捕获功能,即同一事件, 自父元素捕获至元素(事件源元素)。...stopBubble(event) 阻止默认事件: 默认事件 — 表单提交,a标签跳转,右键菜单等 1.return false; 以对象属性方式注册事件才生效 2.event.preventDefault...灵活 当有新元素时不需要重新绑定事件 复制代码 事件分类 鼠标事件 click、mousedown、mousemove、mouseup、contextmenu、 mouseover、mouseout...、mouseenter、mouseleave 用button来区分鼠标的按键,0/1/2 DOM3标准规定:click事件只能监听左键,只能通过mousedown 和 mouseup来判断鼠标键 如何解决

    68740

    前端(四)-jQuery

    方法 说明 $(A).append(B) 将B节点追加到A节点节点中 $(A).appendTo(B) 将A节点追加到B节点节点中 $(A).prepend(B) 将B节点追加到A节点节点中...clone(false) 复制节点但不复制节点事件 3.5属性操作 方法 说明 $("元素标签").attr("属性名") 获取指定属性属性值 $("元素标签").attr("属性名","属性值...3.6.1 遍历元素 方法 说明 children() 获取元素所有元素 $(selector).children([expr]); 获取元素指定元素 3.6.2 遍历同辈元素 方法...方法 相同点 不同点 mouseover() 鼠标进入被选元素时会触发 鼠标在其被选元素元素上来回进入时,触发 mouseenter() 鼠标进入被选元素时会触发 鼠标在其被选元素元素上来回进入时...,不触发 mouseout() 鼠标离开被选元素是会触发 鼠标在其被选元素元素上来回离开时,触发 mouseleaver() 鼠标离开被选元素是会触发 鼠标在其被选元素元素上来回进入时,不触发

    8.5K30

    mouseenter与mouseover为何这般纠缠不清?

    前言 项目地址 不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应mouseoutmouseleave)事件所困扰。...,凑合看哈) 由于mouseenter不支持事件冒泡,导致在一个元素元素上进入或离开时候会触发其mouseover和mouseout事件,但是却不会触发mouseenter和mouseleave事件..., 其实不一定,后面会说明), 或者ul元素本身(在其元素移出时), 又或者是元素本身(直接从子元素A移动到元素B)。...ul父元素wrap(移入ul时,此时也是触发mouseenter事件时候, 其实不一定,后面会说明), 或者ul元素本身(在其元素移出时), 又或者是元素本身(直接从子元素A移动到元素B)。...用mouseout模拟mouseleave事件 当mouseout被激活时,relatedTarget表示鼠标离开目标元素时,进入了哪个元素,我们同样可以对relatedTarget值进行判断:如果值不是目标元素

    1.7K70

    面试官:mouseenter与mouseover有何异同?怎么模拟mouseenter?

    不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应mouseoutmouseleave)事件所困扰。...和mouseout事件,但是却不会触发mouseenter和mouseleave事件 我们用一张动图来看看他们区别(或者点击该链接体验)。..., 其实不一定,后面会说明), 或者ul元素本身(在其元素移出时), 又或者是元素本身(直接从子元素A移动到元素B)。...其实不一定,后面会说明), 或者ul元素本身(在其元素移出时), 又或者是元素本身(直接从子元素A移动到元素B)。...用mouseout模拟mouseleave事件 当mouseout被激活时,relatedTarget表示鼠标离开目标元素时,进入了哪个元素,我们同样可以对relatedTarget值进行判断:如果值不是目标元素

    1.1K30

    mouseenter与mouseover为何这般纠缠不清?

    mouseleave)事件所困扰。...,凑合看哈) 由于mouseenter不支持事件冒泡,导致在一个元素元素上进入或离开时候会触发其mouseover和mouseout事件,但是却不会触发mouseenter和mouseleave事件..., 其实不一定,后面会说明), 或者ul元素本身(在其元素移出时), 又或者是元素本身(直接从子元素A移动到元素B)。...其实不一定,后面会说明), 或者ul元素本身(在其元素移出时), 又或者是元素本身(直接从子元素A移动到元素B)。...用mouseout模拟mouseleave事件 当mouseout被激活时,relatedTarget表示鼠标离开目标元素时,进入了哪个元素,我们同样可以对relatedTarget值进行判断:如果值不是目标元素

    76310

    jQuery(事件和动画-基础事件、复合事件)

    onmouseout 鼠标移出事件 mouseenter 对应onmouseenter鼠标进入事件 mouseleave 对应 onmouseleave鼠标离开事件 keyup 对应onkeyup...注意: mourseover和mourseenter都是鼠标移入元素时触发,不同点:mourseover无论鼠标移入被选元素 还是被选元素元素都会触发。...不同点:mourseout在移除被选元素元素 时也会被触发。mourseleave只有移出被选元素才会被触发。...参数speed:定义显示速度。 参数各属性: slow慢慢显示; normal正常显示; fast快速显示; 参数function:回调函数,当目标 元素全部显示完成后触发。...而且,会伴随着对鼠标是否仍然处在特定元素中检测(例如,处在div中图像),如果是,则会继续保持“悬停”状态,而不触发移出事件(修正了使用mouseout事件一 个常见错误)。

    1.4K10
    领券