我不明白为什么我不能摆脱我的eventListener在这段代码。问题是,当我点击搜索图标打开然后关闭搜索栏,'keydown' eventListener不终止,它仍然存在,如果我按Escape键后,它会模糊我的实际组件。你能帮助我吗?
我的代码:
function handleSearchBar(e) {
let actualComponent = document.querySelector("#actualComponent");
let searchIcon = document.querySelector("#search_icon");
if( e.keyCode === 27 || searchIcon.hasAttribute('enabled') ) {
setSearchBar(() => false)
searchIcon.toggleAttribute("enabled")
actualComponent.classList.toggle("blur-sm")
document.removeEventListener("keydown", handleSearchBar);
}else{
setSearchBar(() => true)
searchIcon.toggleAttribute("enabled")
actualComponent.classList.toggle("blur-sm")
document.addEventListener("keydown", handleSearchBar);
}
}
1条答案
按热度按时间yyyllmsg1#
试试这个。把
removeEventListener
放到if else
之外: