<span style="font-size:12px;line-height:2;"> 模板添加了pjax之后,pjax导致导航Curren高亮失效。</span><span style="font-size:14px;"><span style="font-size:12px;line-height:2;">一直不知道怎么出现的</span><span style="font-size:12px;line-height:2;">,前段时间在emlog论坛看到有人说明了原因,并提供了解决方案。试了下,并没有什么卵用,不知道是不是我的姿势不对。</span></span>
<span style="font-size:12px;line-height:2;">贴出原文方法:</span>
<span style="font-size:12px;line-height:2;">mudule.php中navi的生成函数中:</span>
$current_tab = BLOG_URL . trim(Dispatcher::setPath(), '/'); == $value['url'] ? 'class="current"' : '';
<span style="font-size:12px;line-height:2;">问题原因出现在,Pjax请求页面的时候会自动添加下面这个参数,导致这里判断不一致。</span>
?_pjax=%23contentleft
<p>
<br />
所以比较简单的办法就是……直接替换掉!
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!
<span style="font-size:12px;line-height:2;"> </span>