扫码关注官方订阅号
// html
// js $('.sidebar-attach').on('mouseout',function(){ $('.sidebar-attach').hide(); });
原意是离开sidebar-attach的时候就隐藏它,现在鼠标悬停在其中的secondary-nav、ul、li、a的时候都会隐藏掉它,应该如何去修改?
sidebar-attach
secondary-nav
ul
li
a
人生最曼妙的风景,竟是内心的淡定与从容!
用 mouseleave 事件
mouseleave
http://www.w3school.com.cn/jquery/event_mouseleave.asp
与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。
给attach设置高度 包裹住子元素
因为在javascript中事件会冒泡,所以触发secondary-nav、ul、li、a的mouseout事件,也会触发父元素的mouseout事件。只要阻止子元素的事件冒泡,或者判断事件对象是否是事件绑定对象本身即可,如下:
$('.sidebar-attach').on('mouseout',function(event){ if(event.target == this){ $('.sidebar-attach').hide(); } });
如果子元素不需要绑定鼠标事件的话,css加pointer-events:none;就行了。
用mouseleave吧!
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
用
mouseleave事件http://www.w3school.com.cn/jquery/event_mouseleave.asp
给attach设置高度 包裹住子元素
因为在javascript中事件会冒泡,所以触发secondary-nav、ul、li、a的mouseout事件,也会触发父元素的mouseout事件。只要阻止子元素的事件冒泡,或者判断事件对象是否是事件绑定对象本身即可,如下:
如果子元素不需要绑定鼠标事件的话,css加pointer-events:none;就行了。
用mouseleave吧!