Php 在<;上设置活动类;李>;javascript不能正常工作

Php 在<;上设置活动类;李>;javascript不能正常工作,php,javascript,Php,Javascript,让javascript在我的“li”菜单项上设置一个活动类有点问题 菜单是用php构建的,如下所示 <nav class="categoriesMenu"> <ul class="nav nav-tabs categories"> <?php $i=0; foreach($categories as $k=>$v){ $space = array(" "); $normal

让javascript在我的“li”菜单项上设置一个活动类有点问题

菜单是用php构建的,如下所示

<nav class="categoriesMenu">
<ul class="nav nav-tabs categories">
<?php
        $i=0;
            foreach($categories as $k=>$v){
            $space = array(" ");
            $normalizedCategory = str_replace($space, "", $k);
            echo "<li id='id$normalizedCategory'>";
                 if($i==0){
                    echo "<a href='#'>$k</a>";
                 }else{
                    echo "<a href='#'>$k</a>";
                 }
                 $i++;
              echo "</li>";
           } ?>
</ul>
</nav>
菜单将以这种格式呈现

 <div class="navigation">
 <nav class="categoriesMenu">
 <ul class="nav nav-tabs categories">
 <li id='idManagement'>
      <a href='#'>Management</a>
 </li>
 <li id='idReports'>
      <a href='#'>Reports</a>
 </li>
 <li id='idUsers'>
      <a href='#'>Users</a>
 </li>
 <li id='idAdministration'>
     <a href='#'>Administration</a>
 </li>
 </ul>
</nav>

 <nav class="subCategoriesMenu">
 <ul class="nav nav-pills subCategories">
 <li class='idManagement' id='idManagementRequests' title='RequestsInterface'>
      <a>Requests</a>
 </li>
 <li class='idManagement' id='idManagementTeamActivity' title='ActivityInterface'>
 <a>Team Activity</a>
 </li>
 </ul>
 </nav>

  • 请求
  • 团队活动

任何帮助都将不胜感激。 谢谢你

我想你想要:

var selectCategory=function(id){
    var ref=id.replace(' ','');
    var classSelector=ref.replace(' ','');
    $("nav > ul.categories > li").removeClass("active");
    $("#"+ref).addClass("active");
    $('nav > ul.subCategories > li').hide();
    $('nav > ul.subCategories > li.'+classSelector).show();
}
$('ul.subCategories li').click(function(){
    /*if(!$(this).hasClass("active")){
        window[$(this).attr('title')]();
    }*/
    $('nav > ul.subCategories > li').removeClass("active");
    $(this).addClass("active");
});

$('nav > ul.categories > li').click(function(
    var reference=$(this).attr('id');
    selectCategory(reference);
});

var firstCat=$('nav > ul.subCategories > li:first').attr('class');
selectCategory(firstCat);

这把小提琴是你想要的吗

.children()。您的
  • 元素是否真的包含其他
  • 元素作为直接后代?(我很确定他们不能)试图弄明白你在做什么。你的菜单看起来只有一层深。那么,如果你点击li,还有哪些li儿童可以获得?你想得到他们的兄弟姐妹吗?这适用于菜单的子项“ul.subCategories”,但不适用于菜单项“ul.categories”。请参阅我的编辑和随附的小提琴。您是否试图使两个子菜单都具有活动类?如果是,请使用我拥有的代码,如果不是,请删除
    $('li.'+ref).addClass('active')行。另外,您的
    窗口[$(this.attr(title)]()不是有效的代码,除非它是某种插件。就像我在前面的评论中说的那样,在这种情况下,它可以突出显示菜单子项,但不能突出显示菜单项。就像在小提琴的管理和所有的菜单项应该突出显示时点击。哦。。。在这里,您所需要做的就是更改函数中的id选择器。我编辑了完整的代码。太棒了!很晚了,我很累,没有看到什么变化。谢谢
    
    var selectCategory=function(id){
        var ref=id.replace(' ','');
        var classSelector=ref.replace(' ','');
        $("nav > ul.categories > li").removeClass("active");
        $("#"+ref).addClass("active");
        $('nav > ul.subCategories > li').hide();
        $('nav > ul.subCategories > li.'+classSelector).show();
    }
    $('ul.subCategories li').click(function(){
        /*if(!$(this).hasClass("active")){
            window[$(this).attr('title')]();
        }*/
        $('nav > ul.subCategories > li').removeClass("active");
        $(this).addClass("active");
    });
    
    $('nav > ul.categories > li').click(function(
        var reference=$(this).attr('id');
        selectCategory(reference);
    });
    
    var firstCat=$('nav > ul.subCategories > li:first').attr('class');
    selectCategory(firstCat);