关于操作菜单导航自动高亮的问题,一脸懵逼啊!求大神指教。

tlerbao 2016-08-16 09:08:09
为了能让大神更好的帮我,帖子看起来可能会有点长,我把能贴上的代码都贴上,不过问题是很简单的对大神来说。框架是Thinkphp,这无所谓了

我说明一下,所有的菜单数据有一个字段name存的是user/index这样的url地址,也是我权限控制的方法,请问大神具体要怎么做才能自动在li上加active呢。

首先菜单数组是下面这个样子的,有二级菜单的就数组里有个sub

array(4) {
[1] => array(5) {
["id"] => int(1)
["parent_id"] => int(0)
["name"] => string(10) "index/main"
["title"] => string(12) "控制面板"
["icon"] => string(24) "glyphicon glyphicon-home"
}
[2] => array(6) {
["id"] => int(2)
["parent_id"] => int(0)
["name"] => string(4) "rule"
["title"] => string(21) "用户组权限管理"
["icon"] => string(11) "fa fa-users"
["sub"] => array(3) {
[3] => array(5) {
["id"] => int(3)
["parent_id"] => int(2)
["name"] => string(10) "rule/index"
["title"] => string(12) "菜单管理"
["icon"] => string(8) "fa fa-th"
}
[7] => array(5) {
["id"] => int(7)
["parent_id"] => int(2)
["name"] => string(10) "role/index"
["title"] => string(15) "用户组管理"
["icon"] => string(11) "fa fa-users"
}
[17] => array(5) {
["id"] => int(17)
["parent_id"] => int(2)
["name"] => string(10) "user/index"
["title"] => string(18) "后台用户管理"
["icon"] => string(10) "fa fa-user"
}
}
}


模板代码是volist循环出来的


//开始循环
{volist name="ruleData" id="vo"}
//如果有二级菜单是这样的li
{if condition="isset($vo['sub']) && !empty($vo['sub'])"}
//带二级菜单的一级
<li class="treeview">
<a href="#" data-id="{$vo['id']}"><i class="{$vo.icon}"></i> <span>{$vo.title}</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
//带二级菜单的二级
{if condition="isset($vo['sub']) && !empty($vo['sub'])"}
<ul class="treeview-menu">
{volist name="vo['sub']" id="v"}
<li>
<a href="{:url($v['name'])}" data-id="{$v['id']}"><i class="fa fa-circle-o"></i>
{$v['title']}

</a>
</li>
{/volist}
</ul>
{/if}
</li>
{else /}
//没有二级菜单是这样的li
<li>
<a href="{:url($vo['name'])}" data-id="{$vo['id']}"><i class="{$vo.icon}"></i>
<span>
{$vo.title}
{if condition="(request()->controller().'/'.request()->action()) eq $vo['name']"}dddd{/if}
</span>
</a>
</li>
{/if}
{/volist}

...全文
303 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
李睿_Lee 2016-08-20
  • 打赏
  • 举报
回复
数据库循环出来的,不是静态写死的才好随时变化,才好想加哪就加哪啊。 循环输出的时候,判断一下菜单是不是当前控制器,是的话加上高亮样式就行了。
tlerbao 2016-08-16
  • 打赏
  • 举报
回复
引用 3 楼 jordan102 的回复:
[quote=引用 2 楼 tlerbao 的回复:] [quote=引用 1 楼 jordan102 的回复:] 给li标签加class=active ? 想加哪直接加不就行了?
版主大人你都不看我的帖子的么 我也是不是静态html 怎么想加哪加哪啊,,,菜单都是数据库循环出来的[/quote]你看自己的帖子能看懂吗?[/quote] 哪里不对版主大大教导便是。。。 我想的是 在 li 标签上加 if $name == controller.'/'action 则加active 但是左边一个菜单的$name是固定的 比如是user/index 我进入页面user/index它会高亮,但是当我进入user/edit还想让他高亮怎么办呢。
一起混吧 2016-08-16
  • 打赏
  • 举报
回复
引用 2 楼 tlerbao 的回复:
[quote=引用 1 楼 jordan102 的回复:] 给li标签加class=active ? 想加哪直接加不就行了?
版主大人你都不看我的帖子的么 我也是不是静态html 怎么想加哪加哪啊,,,菜单都是数据库循环出来的[/quote]你看自己的帖子能看懂吗?
tlerbao 2016-08-16
  • 打赏
  • 举报
回复
引用 1 楼 jordan102 的回复:
给li标签加class=active ? 想加哪直接加不就行了?
版主大人你都不看我的帖子的么 我也是不是静态html 怎么想加哪加哪啊,,,菜单都是数据库循环出来的
一起混吧 2016-08-16
  • 打赏
  • 举报
回复
给li标签加class=active ? 想加哪直接加不就行了?
see_you_again__ 2016-08-16
  • 打赏
  • 举报
回复
我觉得你把你的效果图加上,你描述的太抽象,需求不说明白是解决不了问题的
皓月长空 2016-08-16
  • 打赏
  • 举报
回复
你不用判断$name值是什么,直接判断URL后缀某段是什么然后加上CLASS高亮显示就可以了。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧