javascript - 在一个元素之外发生点击事件然后隐藏一个下拉菜单该怎么做?
天蓬老师
天蓬老师 2017-04-10 15:11:56
[JavaScript讨论组]

不是mouseout这样的事件,是在一个元素之外发生点击事件,然后隐藏元素内的一个下拉菜单,效果就类似于segmentfault在添加标签时,会出来一个提示的下拉菜单,然后在菜单之外点击就隐藏菜单,不知道应该怎样绑定事件呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
阿神

用$element来表示你要隐藏的下拉菜单即$element = $('.need-hidden-element')
你添加下面的代码

$(document)
    .on('click', function(){
        $element.hide();
    })
    .on('click', '.need-hidden-element', function(event){
        event.stopPropagation();
    })
巴扎黑

需要将屏幕缩小:代码:响应式菜单制作
这个或许对你也有用:CSS3模拟侧滑菜单
一篇教程:响应式下的下拉菜单

天蓬老师

if加入你的判断

window.onclick = function(e){
        e = e || window.event;
        var t = e.target || e.srcElement;
        if(t...){
            下拉菜单.style.display = "none"
        }
    }
PHPz

jq有个方法:trigger()

$('.p').click(function(){
    $('input').trigger('click');
});

做html5上传的时候用过这个方法,可惜不是原生js了,可以研究一下trigger()在jq里怎么作用的,

阿神
  1. click 事件绑定到 ele 父元素(document.body)。
  2. 判断事件 event.target 和 event.currentTarget 是否相等。
  3. 如果相等,则是在 ele 元素之外(document.body) 触发,隐藏下拉菜单,不等则是 ele 元素触发。
PHP中文网

给document绑定点击事件,直接隐藏菜单

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

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