在Codeigniter中管理或突出显示活动链接或页面

时间:2016-04-13 07:14:52

标签: php jquery codeigniter

我知道这个问题很多,但我只是想知道如何使用已经回复的帖子来解决这个问题。 这是我的观点页面

<<li class="active"> <a class="page-scroll" href="<?php echo base_url();?>nowaste_control/index#about">Home</a> </li>
    <li ><a class="page-scroll" href="<?php echo site_url('nowaste_control/index#product'); ?>">Products</a> </li>
    <li > <a class="page-scroll" href="<?php echo base_url();?>nowaste_control/index#technology">Technology</a> </li>

这是我的jquery

<script type="text/javascript">
jQuery(function($){
  $('a[href="'+window.location.pathname+window.location.hash+'"]').parent().addClass('active');
 });
</script>

我的路径是这个 - > localhost / nowaste / nowaste_control / index#about

这里所有页面都变得活跃了......

2 个答案:

答案 0 :(得分:0)

您实际上有多个网段的网址,但只能比较第一个网址。 .config(['$provide', '$httpProvider', function ($provide, $httpProvider) { $provide.factory('reauthenticationInterceptor', AuthenticationInterceptor.create); $httpProvider.interceptors.push('reauthenticationInterceptor'); }]); 仅从第一个数组部分弹出数组。这意味着您只能获得segment()而永远不会nowaste_control

你真正想要的是index,它将为你提供整个未经改动的字符串。

这带来了另一个问题,即您的链接使用$this->uri->uri_string()(#),但是,codeigniter永远不会在URL请求中观察到这一点,因为Apache不会在请求中收到此信息,而是仅适用于客户端。

所以你真正需要的是一个JavaScript解决方案。这是jQuery的一个正常工作。

hash fragment

答案 1 :(得分:0)

如果你正在使用JQuery,你可以通过在客户端处理它来做这样的事情:

<script type="text/javascript">
    $(function() {
      alert("Current Pathname:" + window.location.pathname);
      if(window.location.pathname=="some path"){
        $("#someLi").addClass("active");
      }else if(window.location.pathname=="some other path"){
        //..
      }
    });

</script>