簡體   English   中英

如何正確突出顯示菜單項中的當前頁面?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM