您好我正在尝试简化此代码,但无法想出以哪种方式执行此操作,任何想法?它实际上是一个超级巨型
$(function() {
$('#globalnavigation').find("a").bind({
click: function() {
if (".submenu:hidden") {
$(".submenu").css("display", "block");
}
if ($('a[href$="#a-menu"]')) {
$(this).addClass("active");
$("#services-menu").css("display", "none");
$("#innovations-menu").css("display", "none");
$("#insights-menu").css("display", "none");
$("#professionals-menu").fadeIn(750);
}
if ($('a[href$="#b-menu"]')) {
$(this).addClass("active");
$("#professionals-menu").css("display", "none");
$("#innovations-menu").css("display", "none");
$("#insights-menu").css("display", "none");
$("#services-menu").fadeIn(750);
}
if ($('a[href$="#c-menu"]')) {
$(this).addClass("active");
$("#services-menu").css("display", "none");
$("#innovations-menu").css("display", "none");
$("#professionals-menu").css("display", "none");
$("#insights-menu").fadeIn(750);
}
if ($('a[href$="#d-menu"]')) {
$(this).addClass("active");
$("#services-menu").css("display", "none");
$("#professionals-menu").css("display", "none");
$("#insights-menu").css("display", "none");
$("#innovations-menu").fadeIn(750);
}
}
});
});
答案 0 :(得分:0)
CSS:
.submenu-content
{
display: none;
}
HTML:
<nav id="globalnavigation">
<ul>
<li><a id="menu-item-a" href="#professionals-menu">Professionals</a></li>
<li><a id="menu-item-b" href="#services-menu">Services</a></li>
<li><a id="menu-item-c" href="#insights-menu">Insights</a></li>
<li><a id="menu-item-d" href="#innovation-menu">Innovation</a></li>
</ul>
</nav>
<section class="submenu" style="display: block;">
...
<div class="submenu-content" id="submenu-content-a">
<div class="submenu-content" id="submenu-content-b">
<div class="submenu-content" id="submenu-content-c">
<div class="submenu-content" id="submenu-content-d">
...
</section>
JavaScript的:
$('#globalnavigation').find("a").click(function () {
$(this).addClass("active");
$('.submenu').show();
$('.submenu-content').hide();
var id = $(this).attr('id').replace('menu-item-', '');
$('#submenu-content-' + id).fadeIn(750);
});
答案 1 :(得分:0)
首先,您可以整合您的CSS电话
$("#a-menu,#b-menu,#c-menu").css("display", "none");
$("#d-menu").fadeIn(750);
答案 2 :(得分:0)
这样的东西?
formatMenus('a[href$="#a-menu"]');
formatMenus('a[href$="#b-menu"]');
function formatMenus(selector)
{
if ($(selector))
{
$(this).addClass("active");
$("#services-menu").css("display", "none");
$("#innovations-menu").css("display", "none");
$("#insights-menu").css("display", "none");
$("#professionals-menu").fadeIn(750);
}
}