javascript - 在单击事件期间锁定 jQuery 下拉菜单
问题描述
我正在创建一个使用事件 api 搜索事件的网络应用程序。我有一个过滤器导航栏,用户可以在其中输入某些过滤器(日期范围、事件类别、距离等)。我在其中一个导航栏元素(类别)上放置了一个单击处理程序,以便在单击时显示隐藏的下拉菜单。如果再次单击相同的导航栏元素或其任何子元素(隐藏的下拉元素),则下拉菜单应消失。我使用 jQuery 将导航栏元素的文本更改为从下拉菜单中单击的类别的文本。但是,当我再次尝试单击导航栏元素时,它被锁定,我无法打开它。我似乎找不到我的代码有什么问题。希望一些额外的眼睛可以帮助我发现它。
这是代码。
<nav class="filter__container">
<ul class="filter">
<li class="filter__category">Category
<div class="filter__category__choices">
<p class="filter__category__choice">Art</p>
<p class="filter__category__choice">Music</p>
<p class="filter__category__choice">Sports</p>
<p class="filter__category__choice">Festival</p>
<p class="filter__category__choice">Miscellaneous</p>
</div>
</li>
<li class="filter__submit">Apply Filters</li>
</ul>
</nav>
const categoryFilter = $(".filter__category");
let categoryOpen = false;
categoryFilter.click((e) => {
if(e.target !== categoryFilter[0]) {
$(".filter__category").text($(e.target).text());
}
if(categoryOpen) {
categoryPopup.slideUp();
categoryOpen = false;
}
else {
categoryPopup.slideDown();
categoryOpen = true;
}
});
解决方案
推荐阅读
- javascript - 如何更改所有 AJAX 请求以从 cookie 添加令牌标头
- laravel - Laravel 字体扩展验证
- javascript - jQuery 根据输入设置和触发选项值
- php - 如何从我单击的任务中获取 id
- python - 在使用列表推导生成素数时使用 `all()` 函数
- google-chrome-extension - 每次使用弹出窗口时显示一个新链接
- uwp - 鼠标和键盘滞后于新部署的 UWP 应用
- angular - 将传入的整数值绑定到表单组中的 mat-radio-button 值
- java - 未检测到 Java KeyPress
- .net - ASP.NET MVC - 不能在 Foreach 循环中使用 HTML Raw