【发布时间】:2016-06-22 18:14:58
【问题描述】:
在单击搜索图标的搜索模块上工作,表单会出现,如果您单击正文上的任何位置(表单除外),它会滑开。
目前有这个,它在图标单击时应用正确的类,并在正文单击时删除,但是当您单击表单上的任意位置时,它也会隐藏。如果表单被隐藏(在 headerSearch 中),我希望它忽略 removeClass。
$('html').click(function(e) {
if(!$(e.target).hasClass('headerSearch') )
{
$('.headerSearch').removeClass('display');
}
if($(e.target).closest('headerSearch').length)
return;
if($(e.target).hasClass('fa-search') )
{
$('.headerSearch').addClass('display');
}
});
【问题讨论】:
-
能否也提供html?
-
当点击
Y时向X添加一个类 是关于SO 的非常 常见问题,答案几乎相同对于任何 X 和 Y。您的 X 和 Y 是 div 和 other div ...这里是 a question 其中 X 和 Y 是 父 div 和 div. -
您要做的是在单击
<form>(或包含它的div)时停止事件传播,因此它不会冒泡到正文单击的<body>处理程序将对事件采取行动并隐藏表单。检查 jquery 的event.stopPropagation()和event.stopImmediatePropagation()