用jQuery实现当前页面给菜单导航一个特定样式
以前一直困惑我的一个问题就是:怎么实现给当前页面导航菜单一个样式?
最最开始的时候用的是最笨的方法,就是每个导航页面都写得不一样。比方说index.html页面的时候,会在index导航的a标签一个.active样式,然后第二个Posts.html页面的时候会在Posts导航的a标签一个.active样式。这个虽然效果实现了,但是有个很大的缺点 – 导航不能调用一个,每个页面的导航写法不一样。
后来发现可以用PHP的GET变量来实现这个效果。这个效果比上一个好,可以调用同一个导航文件,但是现在想想,这个方法会让导航这个文件代码变得臃肿,每个a标签都要写个if语句判断语句。然后根据GET获得的变量来判断是否显示.active这个样式。
今天无意中看了下一个开源的后台模板。下载下来发现他这个是纯HTML也实现了这个功能,然后查看源代码,在charisma.js文件发现了下面这个关键的代码:
1
2
3
4
5 |
//highlight
current / active link
$(‘ul.main-menu
li a‘).each(function(){
if($($(this))[0].href==String(window.location))
$(this).parent().addClass(‘active‘);
}); |
然后根据这个,自己写了个Demo,果然实现了。这下省了不少代码,也解决了一个我一直以来比较困惑的问题,看来还是得多看看别人的代码,学习。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。