切换菜单项
Toggle menu items
本文关键字:菜单项 更新时间:2023-09-26
我想在单击菜单项时切换菜单项上的类,以显示附加的子菜单。我需要在单击一个项目开/关时进行切换,但当您单击另一个菜单项时,它需要自行切换并关闭已经打开的菜单项。
笔在这里:http://codepen.io/saltcod/pen/rxZwBZ?editors=1100
( function( window, $ ) {
'use strict';
var primaryNavLinks = document.querySelectorAll('.primary-navigation > .menu > li > a');
_.each( primaryNavLinks, function( primaryNavLink ) {
// add event listener to each menu item
primaryNavLink.addEventListener( 'click', function() {
// if one already has class 'open', remove it
if ($(primaryNavLinks).hasClass('open') ) {
$( primaryNavLinks ).removeClass('open');
}
// toggle 'open' on the one that we've clicked
$(this).toggleClass('open');
});
});
} )( this, jQuery );
<nav class="primary-navigation" role="navigation">
<ul class="menu">
<li>
<a href="#">News</a>
<div class="sub-menu">
<div class="wrapper">
<ul>
<li><a href="#">All News</a></li>
<li><a href="#">This other news</a></li>
<li><a href="#">More news</a></li>
</ul>
</div>
</div>
</li>
<li><a href="#">Weather</a></li>
<li><a href="#">Sports</a></li>
<li><a href="#">Live</a></li>
</ul>
它现在工作了 99% — 当我单击一个项目时,它会打开,当我单击另一个项目时,它会打开那个项目。 不起作用的部分是当我单击一个项目时,它不会自行关闭。
谢谢!
ps:我使用的是香草和jQuery的混合。
(function(window, $) {
'use strict';
var primaryNavLinks = $('.primary-navigation .menu li a');
primaryNavLinks.click(function(e) {
e.preventDefault();
if( $(this).hasClass('open') ) {
primaryNavLinks.removeClass('open');
}else{
primaryNavLinks.removeClass('open');
$(this).addClass('open');
}
});
})(this, jQuery);
在你的代码笔中让它工作。试一试。
如果要
切换"关闭"或关闭单击的项目,则不想再次调用切换"打开"功能。 下面我只在链接未打开的情况下调用切换('打开')。
// if one already has class 'open', remove it
if ($(primaryNavLinks).hasClass('open')) {
$(primaryNavLinks).removeClass('open');
} else {
// toggle 'open' on the one that we've clicked
$(this).toggleClass('open');
}
相关文章:
- 显示菜单项
- 如何定义和渲染子菜单项,使用Aurelia's路由器
- 如何在没有2个项目的情况下更改菜单项href
- JQuery超级菜单全宽菜单项
- jQuery在部分上滚动时突出显示菜单项
- 突出显示菜单项及其子菜单项
- 突出显示菜单栏上的活动菜单项
- 可访问的更改菜单项,用于使用不引人注目的JS进行导航,而不是jQuery,
- 可访问性:为什么 Jquery 菜单明确将菜单项 tabindex 设置为 -1
- 当我选择菜单项时,如何播放html5播放器的视频
- 什么脚本隐藏父菜单项
- 如何在两种条件下显示相同的上下文菜单项
- 使用粘性滚动菜单链接打开手风琴式菜单项
- 使用CSS/JavaScript在活动页面上突出显示活动导航菜单项,无id
- 单击后要显示相关的菜单项
- 如何在浏览器中禁用或删除粘贴上下文菜单项
- 使用jquery突出显示下一个菜单项
- 在具有固定菜单的单页网站中定位当前菜单项
- 什么是“已弃用.相反,使用可组合性“的意思在Reactjs Material-UI菜单项中
- jQuery 函数 .prepend() 不适用于 WordPress 导航菜单项