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

Php 如何将活动类添加到codeigniter超链接?,php,jquery,css,codeigniter,Php,Jquery,Css,Codeigniter,我知道这个问题会遇到很多,但我就是不知道如何使用已经回答过的帖子来解决这个问题 我有一个带有导航链接的标题。我想将class=“active”添加到当前处于活动状态的链接中 如果我有以下导航,我怎么做 <nav> <ul id="main_nav"> <li class="home"> <a href="search"> <i class="icon-search

我知道这个问题会遇到很多,但我就是不知道如何使用已经回答过的帖子来解决这个问题

我有一个带有导航链接的标题。我想将
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>

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

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

$(函数(){
var href=$(this.find('a').attr('href');
警报(窗口.位置.路径名)
if(href==window.location.pathname){
$(this.addClass('active');
}
}); 

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

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

if (href === window.location.pathname) {
   $('a[href='+ href +']').addClass('active');
}
若您使用的是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>
  • 如果您遇到任何问题,请告诉我

    试试这个:

    <a class="<?=(current_url()==base_url('search')) ? 'active':''?>" href="<?=base_url('search')?>">
    

    我创建了一个助手并将其保存到名为“menu\u helper.php”的助手目录中:


    你可以在这里看到这个网站:我只是指向/搜索看看它是否有效。window.location.pathname是/search,所以我不知道它为什么不起作用。@Keessonema让我检查一下使用
    $('a[href*='+href+']')
    $('a[href$='+href+'])
    。那么好的Jquery替代方案。无论如何,谢谢,但我使用的是codeigniter方法:)我想这是可行的,让我先看看它是否适用于其他链接:Dshorter版本:
    这应该是答案,非常优雅的解决方案。干得好!
    
    <?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' : '';
      }
    }
    
    <li class="<?php echo activate_menu('login'); ?>">    
      <?php echo anchor('login', 'Login'); ?> 
    </li>