Javascript 单击“将类添加到活动菜单”
当我单击父菜单(如域)时,它会显示它的子菜单;当我单击其中一个菜单(如我的域)时,页面会在父菜单关闭的情况下重新加载(未展开,如下图所示) 这些类对于菜单活动(蓝色背景)为“活动”,对于可见的子类为“打开” 以下是JS代码:Javascript 单击“将类添加到活动菜单”,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,当我单击父菜单(如域)时,它会显示它的子菜单;当我单击其中一个菜单(如我的域)时,页面会在父菜单关闭的情况下重新加载(未展开,如下图所示) 这些类对于菜单活动(蓝色背景)为“活动”,对于可见的子类为“打开” 以下是JS代码: // Handle clicking on the naviagtion dropdown items jQuery('.navbar .toggle > a').click(function() { if (!jQuery(this).next()
// Handle clicking on the naviagtion dropdown items
jQuery('.navbar .toggle > a').click(function() {
if (!jQuery(this).next().is(":visible")) {
jQuery('.toggle a').removeClass('open');
jQuery('.toggle ul:visible').hide();
}
jQuery(this).toggleClass('open');
jQuery(this).next().slideToggle();
});
// Tabs Changer
// ===============================
//Default Action
jQuery(".tab-content").hide(); //Hide all content
if (jQuery(location).attr('hash').substr(1)!="") {
var activeTab = jQuery(location).attr('hash');
jQuery("ul").find('li').removeClass('open');
jQuery("ul.nav li").removeClass("active"); //Remove any "active" class
jQuery(activeTab+"nav").addClass("active");
jQuery(activeTab).show();
} else {
jQuery("#tabs ul.nav .nav-tabs li:first").addClass("active").show(); //Activate first tab
jQuery(".tab-content:first").show(); //Show first tab content
}
//On Click Event
jQuery("#tabs ul.nav li").click(function() {
jQuery("ul").find('li').removeClass('open');
jQuery("ul.nav li").removeClass("active"); //Remove any "active" class
jQuery(this).addClass("active"); //Add "active" class to selected tab
var activeTab = jQuery(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
if (activeTab.substr(0,1)=="#" && activeTab.substr(1)!="") { //Determine if a tab or link
jQuery(".tab-content").hide(); //Hide all tab content
jQuery(activeTab).fadeIn(); //Fade in the active content
return false;
} else {
return true; // If link allow redirect
}
});
});
单击“登录”以查看菜单的实时示例:
使用
// Handle clicking on the naviagtion dropdown items
jQuery('.navbar .toggle > a').click(function(e) {
e.preventDefault();
if (!jQuery(this).next().is(":visible")) {
jQuery('.toggle a').removeClass('open');
jQuery('.toggle ul:visible').hide();
}
jQuery(this).toggleClass('open');
jQuery(this).next().slideToggle();
});
在CSS中,当菜单项处于活动状态时,您可以显示/隐藏div。如果加载页面并在控制台中输入以下内容,您将看到它按预期工作:
// Handle clicking on the naviagtion dropdown items
jQuery('.navbar .toggle > a').click(function(e) {
e.preventDefault();
if (!jQuery(this).next().is(":visible")) {
jQuery('.toggle a').removeClass('open');
jQuery('.toggle ul:visible').hide();
}
jQuery(this).toggleClass('open');
jQuery(this).next().slideToggle();
});
jQuery(".navbar .toggle.active > .nav-link").addClass('open');
jQuery(".navbar .toggle.active > ul").css('display', 'block');
但是,您可能会遇到一些时间问题。将其包装在jQuery(窗口)中不是最佳做法。但在上,它将完成工作:
jQuery(window).on('load', null, {}, function () {
jQuery(".navbar .toggle.active > .nav-link").addClass('open');
jQuery(".navbar .toggle.active > ul").css('display', 'block');
});
正常情况下,它应该同步运行,但为了让它工作,请使用窗口。onload
将在所有加载完成后运行此代码,我们可以安全地假设您的菜单将准备好接受此代码。因此,这可能会在菜单最初设置好并准备好执行此代码之后运行(我们说的是毫秒)。e.preventDefault();并使用e.stopPropagation();也喜欢这个吗?“event.preventDefault();event.stopPropagation();”仍然是个禁忌:/我上周开始学习javascript,所以我不确定。上面有一个链接,是菜单的实时版本,也许你想看看?它在一个单独的javascript文件中被调用-你想要完整吗?让我们看看