将活动类添加到jquery中
我试图在每次单击列表项时删除并设置其活动类。我不明白哪里出了错。提前谢谢将活动类添加到jquery中,jquery,class,Jquery,Class,我试图在每次单击列表项时删除并设置其活动类。我不明白哪里出了错。提前谢谢 $(“#活动菜单”)。在('click','a',function()上{ $('#活动菜单a.active').removeClass('active'); $(this.addClass('active'); }); 根据您的需要,您不需要a标记单击的侦听器,相反,您必须使用$\u SERVER['REQUEST\u URI']获取当前页面名称,并根据添加活动类的使用条件激活a标记。我知道您将
$(“#活动菜单”)。在('click','a',function()上{
$('#活动菜单a.active').removeClass('active');
$(this.addClass('active');
});
根据您的需要,您不需要a标记单击的侦听器,相反,您必须使用$\u SERVER['REQUEST\u URI']获取当前页面名称,并根据添加活动类的使用条件激活a标记。我知道您将这段HTML包含到您拥有的每个PHP文件中,作为一个固定的菜单元素
因此,每当有人点击菜单链接时,他们基本上会被导航到另一个页面(除非你通过ajax加载链接——事实似乎并非如此)。在这种情况下,不需要通过jQuery添加/删除活动类-实际上它也不会有任何效果,因为当您导航离开时,元素的状态不会被保留
正如第一个答案中指出的,您需要检查第一次加载的页面,然后在必要时在菜单项上添加“active”类
这可以通过首先确定活动页面来处理:
$request = $_SERVER['REQUEST_URI'];
$active_page = "";
if (strpos($request, 'blog.php') !== false) {
$active_page = "blog";
} else if (strpos($request, 'contact.php') !== false {
$active_page = "contact";
}
。。。等等然后,在列出菜单项时,可以检查它们是否为活动项,如果是,可以添加活动类,如:
<ul id="active-menu" class="ul">
<li class="menu_li">
<a class="blogname <?=$active_page == 'blog' ? 'active' : ''?>" href="blog.php">
Menu item text
</a>
</li>
<li class="menu_li">
<a class="blogname <?=$active_page == 'contact' ? 'active' : ''?>" href="contact.php">
Menu item text
</a>
</li>
</ul>
链接点击是否确实导致加载新页面?如果是这样的话,那就是问题所在。谢谢你的回答:现在活动类可以按照我的要求工作,但是a href不能从一个页面转到另一个页面,它保持在同一个页面上(如果您不使用默认设置,那么添加活动类的目的是什么?如果它将非常简短地显示?您将在单击它后立即转到一个新页面?可能我不理解您希望通过AJAX加载内容的问题。我只想在切换页面中显示用户:例如,当站点已加载,主页链接是活动的(颜色为红色),所以,我想,当用户单击另一个链接时,hompage应该像其他链接一样变为被动,单击的页面变为活动。这是我想做的,谢谢