【发布时间】:2020-04-12 07:58:42
【问题描述】:
我为这个问题做了一个 jsfiddle。 https://jsfiddle.net/1af4gyt5/
如果您在搜索输入中输入内容,您将看到搜索结果。我做了一个很重要的叠加层,如果我在搜索输入之外单击,叠加层将隐藏。如果我专注于它,它就会显示出来。但是,如果我在结果 DIV <a> LINK:aaaaaaa</a> etc. 内单击,我已经数小时试图使搜索结果 DIV 不关闭。
当我单击搜索结果 DIV(#show_search) 内的链接时,有人可以帮助我防止搜索结果 DIV(#show_search) 关闭。我还希望它结合搜索输入上的叠加效果。
非常感谢您的宝贵时间,非常感谢!
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<style>
#show_search{
width: 506px;
height: auto;
border: 2px solid black;
display: none;
position: absolute;
z-index:1;
}
#show_search a{
border-bottom: 1px solid #ddd;
display: block;
text-decoration: none;
color:black;
padding:10px;
text-align: center;
z-index:1;
background:yellow;
}
#search {
z-index:1;
}
#overlay {
position: fixed;
display: none;
width: 100%;
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0,0,0,0.5);
z-index: -1;
cursor: default;
}
</style>
<div id="overlay"></div>
<form class="form-inline my-0"><div class="form-group has-search">
<span class="fa fa-search form-control-feedback"></span>
<input id='search' type="text" class="form-control input-more-width" placeholder="Search">
</div></form><div class="show_search" id="show_search"><a>LINK:aaaaaa</a><a>LINK:bbbbbbb</a><a>LINK:cccccccc</a></div>
<script>
$("#search").keyup(function(){
$("#show_search").show();
});
$('#search').focus(function() {
$("#overlay").show();
$("#search").keyup(function(){
$("#overlay").show();
$('#search').focusout(function() {
$(".show_search").hide();
$("#overlay").hide();
});
});
});
</script>
【问题讨论】: