javascript-jQuery:使用ToggleClass编写Mega菜单
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-jQuery:使用ToggleClass编写Mega菜单,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3342字,纯文字阅读大概需要5分钟。
内容图文
![javascript-jQuery:使用ToggleClass编写Mega菜单](/upload/InfoBanner/zyjiaocheng/662/d14b5f74d4c14a21a60ed7940006bc8f.jpg)
我正在为网站的标题构建超级菜单.我正在使用jQuery的toggleClass来设置“抽屉”的活动状态.我对jQuery相当陌生,还没有进入很多更复杂的代码结构方式,所以我认为当前的实现非常乏味/冗长,我想知道是否有更好的方法可以做到这一点类切换.请注意,(至少在这一点上)我选择不选择悬停路线,而是使用点击切换.悬停菜单可以是PITA.
这是我的CodePen,其中包含所有内容,包括有问题的jQuery:
http://codepen.io/ksherman/pen/YPMXJW
这是jQuery块:
$('#admissions').click(function(){
$(this).parent().toggleClass('active');
$('.admissionsNav').toggleClass('active');
$('.degreesNav, .applyNav, .visitNav, .campusNav, .aboutNav, .searchNav').removeClass('active');
$('#degrees, #apply, #visit, #campus, #about, #search').parent().removeClass('active');
});
$('#degrees').click(function(){
$(this).parent().toggleClass('active');
$('.degreesNav').toggleClass('active');
$('.applyNav, .visitNav, .campusNav, .aboutNav, .searchNav, .admissionsNav').removeClass('active');
$('#admissions, #apply, #visit, #campus, #about, #search').parent().removeClass('active');
});
$('#apply').click(function(){
$(this).parent().toggleClass('active');
$('.applyNav').toggleClass('active');
$('.visitNav, .campusNav, .aboutNav, .searchNav, .admissionsNav, .degreesNav').removeClass('active');
$('#visit, #campus, #about, #search, #admissions, #degrees').parent().removeClass('active');
});
$('#visit').click(function(){
$(this).parent().toggleClass('active');
$('.visitNav').toggleClass('active');
$('.campusNav, .aboutNav, .searchNav, .admissionsNav, .degreesNav, .applyNav').removeClass('active');
$('#admissions, #degrees, #apply, #campus, #about, #search').parent().removeClass('active');
});
$('#campus').click(function(){
$(this).parent().toggleClass('active');
$('.campusNav').toggleClass('active');
$('.aboutNav, .searchNav, .admissionsNav, .degreesNav, .applyNav, .visitNav').removeClass('active');
$('#admissions, #degrees, #apply, #visit, #about, #search').parent().removeClass('active');
});
$('#about').click(function(){
$(this).parent().toggleClass('active');
$('.aboutNav').toggleClass('active');
$('.searchNav, .admissionsNav, .degreesNav, .applyNav, .visitNav, .campusNav').removeClass('active');
$('#admissions, #degrees, #apply, #visit, #campus, #search').parent().removeClass('active');
});
$('#search').click(function(){
$(this).parent().toggleClass('active');
$('.searchNav').toggleClass('active');
$('.admissionsNav, .degreesNav, .applyNav, .visitNav, .campusNav, .aboutNav').removeClass('active');
$('#admissions, #degrees, #apply, #visit, #campus, #about').parent().removeClass('active');
});
$('#body').click( function () {
$('.admissionsNav, .degreesNav, .applyNav, .visitNav, .campusNav, .aboutNav, .searchNav').removeClass('active');
$('#admissions, #degrees, #apply, #visit, #campus, #about, #search').parent().removeClass('active');
});
解决方法:
您可以将它们组合成一个函数,并为所有按钮调用它.
var menus = ['admissions', 'degrees', 'apply', 'visit', 'campus', 'about', 'search'];
function menuClick(e) {
$(this).parent().toggleClass('active');
$('.' + e.target.id + 'Nav').toggleClass('active');
var otherMenus = menus.filter(function (item) { return item !== e.target.id });
otherMenus.forEach(function (menu) {
$('.' + menu + 'Nav').removeClass('active');
$('#' + menu).parent().removeClass('active');
});
}
menus.forEach(function (menu) {
$('#' + menu).click(menuClick);
});
$('#body').click( menuClick );
内容总结
以上是互联网集市为您收集整理的javascript-jQuery:使用ToggleClass编写Mega菜单全部内容,希望文章能够帮你解决javascript-jQuery:使用ToggleClass编写Mega菜单所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。