【Emlog】解决pjax导致导航Curren高亮失效的问题

    模板添加了pjax之后,pjax导致导航Curren高亮失效。一直不知道怎么出现的,前段时间在emlog论坛看到有人说明了原因,并提供了解决方案。试了下,并没有什么卵用,不知道是不是我的姿势不对。

贴出原文方法:

mudule.php中navi的生成函数中:

$current_tab = BLOG_URL . trim(Dispatcher::setPath(), '/'); == $value['url'] ? 'class="current"' : '';

问题原因出现在,Pjax请求页面的时候会自动添加下面这个参数,导致这里判断不一致。

?_pjax=%23contentleft

所以比较简单的办法就是……直接替换掉!

str_replace("?_pjax=%23contentleft","",BLOG_URL . trim(Dispatcher::setPath(), '/'));
/**说明一下str_replace()函数,接收三个参数,效果是第二个参数替换第三个参数中的第一个参数*/

  尝试了很多次,并没有什么效果,于是,想到用jq判断当前热点,控制current类应该也可以实现,尝试了下,完美解决。

$(document).ready(function(){
  $("li.item").click(function(){
    $("li.item").removeClass("current");
    $(this).addClass("current");
  });
});

其实这个方法不光是可以解决emlog,其他任何页面的导航的cuurent类都可以用这个判断,很简单的一句代码,往往却不被人注意! happy lucky!

 

未经允许不得转载:莫小奈博客 » 【Emlog】解决pjax导致导航Curren高亮失效的问题

评论 1

评论前必须登录!

登陆 注册
  1. 莫小奈[blockquote][F1] 好羞射,文章真的好赞啊,顶博主![/blockquote]