【发布时间】:2020-11-20 21:31:33
【问题描述】:
如果我单击搜索栏元素以外的任何位置(输入和提交按钮),我想要关闭搜索栏。到目前为止,我所做的是使用切换来打开和关闭它,这是有效的。但是,如果我单击 div 之外的任何位置,到目前为止我找不到关闭它的方法。 代码笔:https://codepen.io/hateusall/pen/abdedJE
HTML:
<header>
<div class="container-fluid">
<div class="navbarCustom pleft pright ">
<div class="navbar-brand">
<img src="./images/x.png" alt="x" class="header-logo">
</div>
<ul class="list-unstyled d-xl-flex align-items-center navbar-custom">
<li class="dropdown " >Lorem Ipsum</li>
<li class="dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Lorem Ipsum </li>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">Lorem Ipsum</a>
<a class="dropdown-item" href="#">Lorem Ipsum</a>
<a class="dropdown-item" href="#">Lorem Ipsum</a>
</div>
<li> Lorem Ipsum</li>
<li> <button class="btn-wpp"> Whatsapp </button></li>
<li class="position-relative wrapper-bar">
<div class="search-icon search-toggler">
<i class="fas fa-search search"></i></div>
<div class="search-wrapper" >
<form action="#" class="">
<input type="text" placeholder="Search" class="search-input" id="info">
<button class="border-0 bg-dark text-white p-2 btn-search"><i class="fas fa-search" id="info2"></i></button>
</form>
</div>
</li>
</ul>
<div class="navbar-toggler text-white d-xl-none">
<span class="line line1"></span>
<span class="line line2"></span>
<span class="line line3"></span>
</div>
</div>
</div>
</header>
const searchToggler = document.querySelector(".search-toggler");
const searchWrapper = document.querySelector(".search-wrapper");
searchToggler.addEventListener("click", function(e){
if ( !$(event.target).hasClass('search-toggler')) {
$(searchWrapper).toggleClass("search-wrapper-active");
close();
}
});
function close() {
if (!$(event.target).hasClass('search-wrapper-active')) {
$(document).click(function(e){
/* here i would remove active classes */
console.log("test")
})
}
}
}
【问题讨论】:
-
您的预期输出是什么?您的问题不清楚抱歉。
-
对不起。我所做的是在点击时显示一个 div,当我点击它时,它会隐藏起来。我用切换来做到这一点。但我想要的是,如果我点击它关闭的 div 之外的任何地方
-
能否请您添加html代码以及所有相关的js代码。提供的代码看起来很完整,甚至不会运行
-
刚刚添加了更多信息。抱歉,帖子不完整。
-
还要添加 CSS,制作 minimal reproducible example 以帮助我们帮助您。在编辑器中按
<>按钮制作一个sn-p。
标签: javascript jquery