我一直在思考如何使用 jquery 在我的侧边栏菜单上添加一个活动类,该类将按 url 过滤。
这就是我目前在页面处于活动状态时添加活动类的方式:
<?php
$seg1 = $this->uri->segment(1);
$seg2 = $this->uri->segment(2);
$seg3 = $this->uri->segment(3);
$seg4 = $this->uri->segment(4);
?>
<li class="treeview <?php echo $seg1 == 'media' ? 'menu-open active' : '' ?>">
<a href="#">
<i class="fa fa-image"></i><span>Media Library</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li class="<?php echo $seg1 == 'media' && $seg2 == 'images' ? 'menu-open active' : ''; ?>">
<a href="<?php echo base_url(); ?>media/images">Images</a>
</li>
<li class="<?php echo $seg1 == 'media' && $seg2 == 'videos' ? 'menu-open active' : ''; ?>">
<a href="<?php echo base_url(); ?>media/videos">Videos</a>
</li>
</ul>
</li>
我想做的是通过简单地使用 CI ready 函数current_url()
获取当前页面 url,然后使用 jquery 找到与当前 url 具有相同 url 的锚点。进行比较后,我将获取<a>
的父<li>
并添加活动类。
您可以通过属性比较轻松查询元素,例如:
$('a[href="' window.location.href '"]').addClass('active');
只需将其放在文档就绪范围/事件处理程序中即可。