我有这个递归函数:
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
以绿色激活,让用户知道他所在菜单的哪个部分。感谢你提前
答案 0 :(得分:0)
我认为你太复杂了。以下是你需要的吗?当您点击a,b或c时,父母将获得绿色背景。
$("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;