模板添加了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!
[blockquote][F1] 好羞射,文章真的好赞啊,顶博主![/blockquote]