【问题标题】:Add class to div on another's click, remove class if body is clicked except for that div and child elements在另一个人的点击时将类添加到 div,如果点击主体,则删除类,除了那个 div 和子元素
【发布时间】: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 是 divother div ...这里是 a question 其中 X 和 Y 是 父 divdiv.
  • 您要做的是在单击<form>(或包含它的div)时停止事件传播,因此它不会冒泡到正文单击的<body>处理程序将对事件采取行动并隐藏表单。检查 jquery 的 event.stopPropagation()event.stopImmediatePropagation()

标签: jquery html css


【解决方案1】:

您要做的是在单击(或包含它的 div)时停止事件传播,这样它就不会冒泡到正文单击处理程序将作用于事件并隐藏表单的位置。检查jquery的event.stopPropagation()event.stopImmediatePropagation()

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

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    相关资源
    最近更新 更多