html - Jquery - 单击时触发子菜单,然后在第二次单击时关闭
问题描述
我今天正在尝试 Jquery,我必须设置一个仅在手机上触发的子菜单,方法是单击它。我找到了一种方法来做到这一点!它可以工作,但我无法在再次单击父菜单时关闭它。
你们能帮我做吗?
代码:
$('.menu-item-has-children').find('> li').click(function() {
$('.menu-item-has-children > li').not(this).find('ul').slideUp();
$(this).find('ul').stop(true, true).slideToggle(400);
return false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<nav id="primary-nav">
<li class="menu-item menu-item-has-children">
<a href="#">Parent menu</a>
<ul class="sub-menu">
<li class="menu-item"><a title="Contract Negotiation">Contract Negotiation</a></li>
<li class="menu-item"><a title="Contract Negotiation">Contract Negotiation</a></li>
<li class="menu-item"><a title="Contract Negotiation">Contract Negotiation</a></li>
</ul>
</li>
</nav>
再次非常感谢:)
解决方案
您的选择器在单击功能之前不好。
这就是你想要的?
$('.menuTrigger').click(function() {
//$('.menu-item-has-children > li').not(this).find('ul').slideUp();
$(this).next('ul.sub-menu').stop(true, true).slideToggle(400);
return false;
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<nav id="primary-nav">
<li class="menu-item menu-item-has-children">
<a href="#" class="menuTrigger">Parent menu</a>
<ul class="sub-menu">
<li class="menu-item"><a title="Contract Negotiation" href="#">Contract Negotiation</a></li>
<li class="menu-item"><a title="Contract Negotiation" href="#">Contract Negotiation</a></li>
<li class="menu-item"><a title="Contract Negotiation" href="#">Contract Negotiation</a></li>
</ul>
</li>
</nav>
推荐阅读
- r - text2vec 的 vocab_vectorizer 输出是函数本身
- python - 哪个是计算数组中元素的最快方法
- vba - 用于单击页面上的按钮的 Visual Basic 字符串
- javascript - 如何通过 kendo 数据源以编程方式应用复杂的 odata 过滤器?
- machine-learning - 关于“BigQuery ML 入门”练习的问题
- python - 尝试计算预测的备用分类交叉熵损失时出现 AttributeError
- sql-server - 在 MSSQL 中通过正则表达式在文本中查找带有数字的记录
- python - 摆脱python中的换行符和回车符
- python - 序列的 Python 可选等效项
- html - 页面变长时页脚不在页面底部