var _dom = $(".js_drop_box"); var _isFalse = 1; var _btn = $(".js_drop_btn"); $(document).on('click',function () { if(_isFalse){ _dom.hide(); _isFalse = 0; } }); _btn.on('click',function (e) { if(!_isFalse){ console.log(_dom); _dom.show(); _isFalse = 1; e.stopPropagation() } }) 给document添加隐藏事件 后给btn 添加事件不会显示 是因为js事件捕获机制 需要取消掉冒泡事件 不用原生写都忘了