点击空白处div隐藏,但是在触发别的click事件时该div也要隐藏

已经为每个click的元素处理冒泡$(document).click(function(event){$(".operate").hide(500);$(".person... 已经为每个click的元素处理冒泡
$(document).click(function(event) {
$(".operate").hide(500);
$(".person-details").hide(500);
$(".cityChoose").hide(500);
});
$(".header-right ul li:first").click(function(e) {
var cTop = $(this).offset().top + 30;
var cLeft = $(this).offset().left;
$(".cityChoose").css({
"top": cTop,
"left": cLeft
}).slideToggle();
return false;
})
像.operate,person-details,cityChoose打开页面一开始都是隐藏的,在触发各个click事件的时候他们才对应显示,现在的问题是$(document).click事件时,触发别的click事件,但是触发过click事件的元素不隐藏
展开
 我来答
纯洁的小树
2015-11-25 · TA获得超过3386个赞
知道大有可为答主
回答量:2536
采纳率:71%
帮助的人:471万
展开全部
$(".header-right ul li:first").click(function(e) {
var cTop = $(this).offset().top + 30;
var cLeft = $(this).offset().left;
$(".cityChoose").css({
"top": cTop,
"left": cLeft
}).slideToggle();
return false; //你在这里return了一个false不知道是不是这个问题。
})

然后我理一下你的思路。一开有几个div是隐藏的,执行一些操作的时候这些div就显示的,然后你想要实现一个用户点击其它地方的时候这些div有隐藏。如果思路是这样的话,你为什么不当这些div显示的时候再给document绑定click事件的。然后再函数里面通过event判断一下点击的是不是其它地方来判断是不是隐藏显示的div.
追问
那里return false是为了阻止冒泡,然后document我给绑定的有click事件 问题处有贴出来的
追答
cityChoose 如果这些标签在li标签里面的话,你阻止了冒泡,document绑定的click事件是不会响应的。
你想要达到的效果就是点击其它地方隐藏这些显示的div,你可以在doument绑定的那个函数里面添加一个打印,看看会不会执行到。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式