如何将活动类添加到codeigniter超链接?

Kee*_*ema 8 css php jquery codeigniter

我知道这个问题很多,但我只是无法弄清楚如何使用已经回答的帖子来做到这一点.

我有一个带导航链接的标题.我想添加class="active"目前活跃的链接.

如果我有以下导航,我怎么能这样做?

<nav>
    <ul id="main_nav">
        <li class="home">
            <a href="search">
                <i class="icon-search"></i>
                <span>BEDRIJF ZOEKEN</span>
            </a>
        </li>
        <li class="categorie">
            <a href="categorieen/all">
                <i class="icon-list-ul"></i>
                    <span>CATEGORIE</span>
            </a>
        </li>
        <li class="aanbieding">
            <a href="aanbiedingen">
                <i class="icon-shopping-cart"></i>
                    <span>AANBIEDING</span>
            </a>
        </li>
        <li class="vacature">
            <a href="vacatures">
                <i class="icon-copy"></i>
                <span>VACATURE</span>
            </a>
        </li>
        <li class="agenda">
            <a href="agenda">
                <i class="icon-calendar"></i>
                <span>AGENDA</span>
            </a>
        </li>
        <li class="contact">
            <a href="contact">
                <i class="icon-envelope"></i>
                <span>CONTACT</span>
            </a>
        </li>
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它不起作用:

<script>
$(function() {
    var href = $(this).find('a').attr('href');
    alert(window.location.pathname)
    if (href === window.location.pathname) {
      $(this).addClass('active');
    }
}); 
</script>   
Run Code Online (Sandbox Code Playgroud)

也许有更好的Codeigniter-ish方式?

ABo*_*rty 14

尝试这个.我认为不需要javascript或jquery.

如果您使用的是codeigniter,则可以使用URI类.

<li class="home">
    <a class="<?php if($this->uri->segment(1)=="search"){echo "active";}?>" href="<?=base_url('search')?>">
        <i class="icon-search"></i>
        <span>BEDRIJF ZOEKEN</span>
    </a>
</li>
Run Code Online (Sandbox Code Playgroud)

如果您遇到任何问题,请告诉我


Les*_*ira 7

我创建了一个帮助器并保存到名为"menu_helper.php"的帮助程序目录中:

<?php 
if(!defined('BASEPATH')) exit('No direct script access allowed');

if(!function_exists('active_link')) {
  function activate_menu($controller) {
    // Getting the class instance.
    $ci = get_instance();
    // Getting the router class to actived it.
    $class = $ci->router->fetch_class();
    return ($class == $controller) ? 'active' : '';
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在config/autoload.php中,我在第91行添加"menu"作为助手.

最后一步是在访问页面时将代码打印为"活动"类(即登录页面):

<li class="<?php echo activate_menu('login'); ?>">    
  <?php echo anchor('login', 'Login'); ?> 
</li>
Run Code Online (Sandbox Code Playgroud)