【发布时间】:2022-01-25 01:35:45
【问题描述】:
function showSuggestions(){
let searchableModulesDiv = document.getElementById('searchableModules');
searchableModulesDiv.classList.remove('d-none');
}
function hideSuggestions(){
let searchableModulesDiv = document.getElementById('searchableModules');
searchableModulesDiv.classList.add('d-none');
}
function filterSuggestions() {
}
.prj-searchable-modules{
position:fixed;
margin-top: 70px;
z-index: 2;
width:100%;
}
.d-none {
display: none;
}
<form id="searchBar" class="w-100 d-inline-flex">
<!-- ... icons, labels, etc -->
<input type="text" class="form-control" id="searchInput" placeholder="Module search..."
onfocus="showSuggestions();" onblur="hideSuggestions();" onkeyup="filterSuggestions();">
</form>
<div id="searchableModules" class="card shadow-sm border-secondary rounded-3 prj-searchable-modules d-none">
<ul class="nav flex-column">
<li class="nav-item text-start">
<a class="nav-link" href="calendar.html">
<i class="fas fa-calendar-alt fa-fw"></i><span class="ps-3">Calendar</span></a>
</li>
<!-- ... more li items -->
</ul>
</div>
我的网站上有一个快速搜索栏,点击后会显示一个可链接的列表。
我面临的问题是点击链接什么也没做,那是因为我认为一旦我点击链接搜索栏就会失去焦点,所以实际的“点击”发生在链接已经消失之后。
欢迎提出任何建议,即使是不同的方法(可能不使用外部插件)。
我目前正在使用 Bootstrap 5 和纯 JS。
【问题讨论】:
标签: javascript html css input onblur