javascript - 悬停离开父级元素隐藏父级元素,悬停在子级元素却也隐藏了父级
黄舟
黄舟 2017-04-11 11:02:03
[JavaScript讨论组]
// html

 // js
 $('.sidebar-attach').on('mouseout',function(){
    $('.sidebar-attach').hide();
 });

原意是离开sidebar-attach的时候就隐藏它,现在鼠标悬停在其中的secondary-navullia的时候都会隐藏掉它,应该如何去修改?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(5)
PHP中文网

mouseleave 事件

http://www.w3school.com.cn/jquery/event_mouseleave.asp

与 mouseout 事件不同,只有在鼠标指针离开被选元素时,才会触发 mouseleave 事件。如果鼠标指针离开任何子元素,同样会触发 mouseout 事件。

天蓬老师

给attach设置高度 包裹住子元素

PHP中文网

因为在javascript中事件会冒泡,所以触发secondary-nav、ul、li、a的mouseout事件,也会触发父元素的mouseout事件。只要阻止子元素的事件冒泡,或者判断事件对象是否是事件绑定对象本身即可,如下:

 $('.sidebar-attach').on('mouseout',function(event){
    if(event.target == this){
        $('.sidebar-attach').hide();
    }
 });
ringa_lee

如果子元素不需要绑定鼠标事件的话,css加pointer-events:none;就行了。

迷茫

用mouseleave吧!

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号