我已使用此Jquery在动态创建的Wordpress导航菜单中设置了一个活动类:
$(document).ready(function () {
$('.left-nav ul > li').click(function (e) {
e.preventDefault();
$('.left-nav ul > li').removeClass('active');
$(this).addClass('active');
});
});
CSS:
.left-nav ul li a {
color:#4D9120;
display:block;
}
.left-nav ul li:hover a {
color:#fff;
}
.left-nav ul li:hover {
background:#4D9120;
}
.left-nav .active{
background-color:#FF0000 !important;
}
.left-nav .active a{
color:#fff !important;
}
HTML / PHP
<ul>
<?php wp_nav_menu(array('theme_location'=>'sidemenu','container'=>'','menu_id' => '','fallback_cb'=> false)); ?>
</ul>
这是动态生成的HTML最终输出:
<div class="col-xs-3 left-nav">
<ul>
<li><a href="#">Tutoring</a></li>
<li><a href="#">Consultancy</a></li>
<li><a href="#">Summer Camp/School</a></li>
<li><a href="#">University Applications</a></li>
<li><a href="#">Job Placements & Intenships</a></li>
</ul>
</div>
在点击任何菜单链接时应用活动课程,但不加载页面。但是当我删除了e.preventDefault();
页面加载但是活动类不再应用了。
我本来喜欢粘贴网站网址,但我目前正在本地服务器上工作。任何帮助将不胜感激。
答案 0 :(得分:1)
current-menu-item
类应自动wp_nav_menu
添加到活动菜单项。摆脱Javascript,并尝试将其添加到您的CSS:
.left-nav ul li.current-menu-item { background-color:#FF0000 !important; }
.left-nav ul li.current-menu-item a { color:#fff !important; }
请参阅文档here。
答案 1 :(得分:1)
这里发生了什么 -
希望这有助于解决您的问题..