当我在其子页面中时,在菜单中激活父名称

时间:2017-07-28 06:38:32

标签: php jquery css recursion

我有这个递归函数:

function recursive($arrays, $out) {
if (is_array($arrays)){
     //$out .= "<ul>";
     foreach($arrays as $parent => $data) {
         //if parent is empty
         if ($parent === '') {
             $out = recursive($data, $out);
             continue;
         }

         $out .= "<li>";
         if (is_array($data)){
             $out .= ' <a href="#" class="dropdown-toggle active" data-toggle="dropdown">';$out .= $parent;
         }
         else
         { $directory =explode("@", $parent)[0];$paname = explode("@", $parent[1]; $link = 'http://127.0.0.1/ocos/index.php?module='.$directory.'/'.$paname;
             $out .= '<a href="'.$link.'">'; $out .= $data;

         }

         if (is_array($data)){
              $out .= '<b class="caret"></b></a>';
         }
         else
         {
             $out .= "</a>";
         }
         if (is_array($data)){
            $out .= "<ul class='dropdown-menu'>";
            $out = recursive($data, $out);
            $out .= "</ul></li>";
         }
         else
         {
         $out .= "</li>"; 
         }
     }
    } 

返还$ out; }

在菜单栏中,我有一个名为operation的父级的下拉菜单,其中有一个名为aro的子页面,aro有另一个名为aro document list的子页面,所以我只有我希望当我在aro document list时让父母operation以绿色激活,让用户知道他所在菜单的哪个部分。感谢你提前

1 个答案:

答案 0 :(得分:0)

我认为你太复杂了。以下是你需要的吗?当您点击a,b或c时,父母将获得绿色背景。

&#13;
&#13;
$("li").on("click", function() {
  var grandparent = $(this).parent("ul").parent("li");
  if (grandparent.length > 0) {
    grandparent.css("background", "green");
  }
});
&#13;
ul {
  padding: 0;
  list-style: none;
  background: white;
}

li {
  cursor: pointer;
}

.operations {
  display: flex;
}

.operations li {
  width: 25px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="operations">
  <li>1</li>
  <li>2</li>
  <li>3
    <ul class="aro">
      <li>a</li>
      <li>b</li>
      <li>c</li>
    </ul>
  </li>
</ul>
&#13;
&#13;
&#13;