在另一个单击中将div添加到div,如果单击body,则删除该类,除了div和子元素

时间:2016-06-22 18:14:59

标签: jquery html css

在单击搜索图标的搜索模块上工作时,将显示该表单,如果您单击正文上的任何位置(表单除外),它将滑开。

目前有这个,它在图​​标点击上应用了正确的类,并在正文单击时删除,但是当您单击表单上的任何位置时,它也会隐藏。如果表单被隐藏(在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');              
}
}); 

1 个答案:

答案 0 :(得分:0)

您要做的是在单击(或包含它的div)时停止事件传播,因此它不会冒泡到主体单击处理程序将对事件执行的位置并隐藏表单。检查jquery的event.stopPropagation()event.stopImmediatePropagation()

只有部分javascript,问题中没有HTML,因此很难更具体。