javascript - 点击子div里的一个按钮使其消失后,如何使鼠标不默认hover在父div上
巴扎黑
巴扎黑 2017-04-11 13:11:49
[JavaScript讨论组]

当点击关闭时,子p会短暂的消失后又出现,造成闪烁

巴扎黑
巴扎黑

全部回复(6)
高洛峰

感觉你的p的结构有问题,明明是两个平行的p,为什么要做成父子结构

伊谢尔伦

<p id="a"></p><p id="b"><button id="bb">关闭</button></p>

<script>
    $(function(){
        $("#a").hover(function(){
            $("#b").toggle();
        })
    })
    $("#bb").bind("click",function(){
        $("#b").hide();
    })
</script>

a和b用float:left;

高洛峰

不然呢?

#b 放到 #a 的外面试试?

PHP中文网

能把css贴一下嘛。。

ringa_lee

目测,如果需求无误的话,js逻辑是没有问题的,也就是说,问题出在你页面标签上——看你的元素嵌套,再看你的效果图,你是在#a容器内给的#b元素定位实现左右排列的吧?问题就来了,你个父元素#a绑定了hover事件,又要在它的子元素上绑定click事件,而按照事件冒泡的逻辑(你的标签页贴了事件冒泡,说明你在、也清楚问题是出在这里了),是先进入父元素,触发hover事件了。当你点击按钮的时候,你的鼠标依然是停留在#b上面,换言之,你任然触发了#a的hover事件。要解决的话,你可以试试优化一下你的页面结构,把#b提出来做#a的同级元素。或者,你试试阻止click的事件冒泡吧。

ringa_lee

试试stopPropagation()方法,阻止事件冒泡
第一段代码改成这样:

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

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