0

这几天我一直在纠结这个问题。我们的想法是复制 Outlook 2010 风格的侧边栏导航并创建用户熟悉的 UX。我目前将其用于 url 上的基本导航和活动状态。

<ul class="fltrt" style="padding-right:5px;"> 
<?php foreach($NavigationArray as $i =>     $nav_item): ?> 
<li <?php if ( $this->uri->uri_string() == $i ): ?> class="active"<?php endif; ?>> 
<?= anchor($i, $nav_item) ?> </li> <?php endforeach ?> </ul>

我只想以http://jqueryui.com/accordion/为例实现一个简单的手风琴菜单,部分标题是磁贴,菜单像上面一样向下循环,但是,如果 url 的第一段 = 标题处于活动状态,如果手风琴菜单中的链接与 url 的第二段匹配,则它也处于活动状态。

想法将不胜感激。

4

1 回答 1

0

这一行:

<li <?php if ( $this->uri->uri_string() == $i ): ?> class="active"<?php endif; ?>>

不会工作。

$this->uri->uri_string()将类似于/index.php/mycontroller/myfunction并且$i可能是 int (0, 1, 2, 3) 所以它们永远不会相等。

您想要匹配$this->uri->segment(n);其中 n 是您想要匹配的 url 的段。例如,如果 url 是/index.php/home/overview并且您要匹配的菜单项是“home”,那么您会这样做

<li <?php if ( $this->uri->segment(1) == $nav_item ): ?> class="active"<?php endif; ?>>
于 2013-05-09T13:08:48.360 回答