[英]How to highlight current page in menu item properly?
我有一個從數據庫動態生成的菜單。 現在,我想突出顯示菜單項中的當前頁面,但是當我這樣做時,所有當前菜單項突然消失。 不明白為什么?
注意在使用$this->uri->segment(1)
導致我的菜單消失
有誰知道如何使它起作用?
在我的查看文件中:
<div id="menu">
<ul>
<?php foreach ($tabMenu as $item) : ?>
<?php echo buildListItem($item); ?>
<?php endforeach; ?>
</ul>
</div>
在我的助手中:
function buildListItem($item) {
$urlItemName = url_title($item->name, 'dash', TRUE);
$urlCatID = ($item->cat_id);
$url = base_url() . $urlItemName. "/". $urlCatID;
// item name is blog, add target into it
if ($urlItemName == 'blog') {
$blog = "http://www.tumblr.com";
return "<li><a href='" . $blog . "' target='_blank'>" . strtoupper($item->name) . "</a></li>";
} else {
return "<li class='". isSelected($item). "'><a href='" . $url . "'>" . strtoupper($item->name) . "</a></li>";
}
}
function isSelected($item) {
$urlItemName = url_title($item->name, 'dash', TRUE);
if ($this->uri->segment(1) === $urlItemName) {
return 'menu_active';
} else {
return '';
}
}
問題出在您的isSelected()
方法中。 當您只應返回menu_active
時,您將返回class='menu_active'
。
在buildListItem()
方法中,您將返回帶有class
屬性的<li>
標記。 然后,在您的isSelected()
方法中,您將再次返回class
屬性。 所以我想<li>
最終看起來像這樣:
<li class='class='menu_active''><a href='{url}'>{name}</a></li>
注意class
內部的class
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.