Deprecated: Function create_function() is deprecated in /www/wwwroot/blog.fenewbee.com/usr/plugins/AntiSpam/Plugin.php on line 75
【Emlog】解决pjax导致导航Curren高亮失效的问题 - A Maverick Pig - - Life is more than just the present, but also poetry and the distance.

A Maverick Pig -

生活不止眼前的苟且
还有诗和远方

【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!

 

本原创文章未经允许不得转载 | 当前页面:A Maverick Pig - » 【Emlog】解决pjax导致导航Curren高亮失效的问题

评论 1

  1. [blockquote][F1] 好羞射,文章真的好赞啊,顶博主![/blockquote]

    莫小奈 2016-08-06    回复