关于前端导航的开发设计

0x01 场景


当前需要在某个后台里面进行动态的导航绑定,比如刷新页面后二层父节点可以自动选中,并且正常的显示。这个需求主要来自于,我准备设定的一些导航栏的功能,不太想放到php中构建,so,在前端做相应的处理。

0x02 coding


这里有两种写法,分享下代码片段截图如下:


代码片段

先说说这里面用的东西,当前主要的结构是这样的:

<!--Menu list item-->
<li class="navdao sub-a">
    <a href="<?=site_url().'/main'?>">
        <i class="demo-psi-home"></i>
        <span class="menu-title">
            <strong>Dashboard</strong>
        </span>
    </a>
</li>
<li class="navdao sub-b">
    <a href="<?=site_url().'/main/vuls'?>">
        <i class="fa fa-user-secret"></i>
        <span class="menu-title">
            <strong>漏洞管理</strong>
        </span>
    </a>
</li>   
<!--Menu list item-->
<li class="navdao active">
    <a href="#">
        <i class="fa fa-eye"></i>
        <span class="menu-title">
            <strong>扫描/测试</strong>
        </span>
        <i class="arrow"></i>
    </a>

    <!--Submenu-->
    <ul class="collapse">
        <li class="active-link"><a href="<?=site_url().'/main/proactive_scan'?>">主动式安全扫描</a></li>
        <li><a href="<?=site_url().'/main/passive_scan'?>">被动式安全扫描</a></li>
        <li><a href="<?=site_url().'/main/baseline_scan'?>">基线安全扫描</a></li>
        <li><a href="<?=site_url().'/main/penetration_test'?>">人工渗透测试</a></li>
    </ul>
</li>

在处理的时候,需要注意选中后的效果添加,以及历史记录的清除。
代码片段如下:

    $('li.navdao').removeClass('active');
    // 清除子集所有的状态
    $('li.navdao').find('ul').find('li').removeClass('active-link');

    var list = $('li.navdao').find('ul').find('li');

    if (path == '/index.php/main'){
        $('li.navdao.sub-a').addClass('active-link');
    }else if(path == '/index.php/main/vuls'){
        $('li.navdao.sub-b').addClass('active-link');
    }

0x03 性能问题


在这里学到个东西,closest取决于遍历了多少父亲节点找到目标,而且还有个匹配过程,是会慢一点,parent只是单纯的取父亲会快点。clsest健壮性强一点,层级变化功能不受影响。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,747评论 25 709
  • 第1章 简介 第2章 DOM节点的创建 2-1 DOM创建节点及节点属性 通过JavaScript可以很方便的获...
    mo默22阅读 839评论 0 8
  • DOM创建节点及节点属性 通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作。但实际上...
    阿r阿r阅读 1,049评论 0 9
  • 看到两个大学生从南京到西安骑行回家的新闻,非常高兴。 我在之前致青春——大学生可做的二三事中提过: 我希望买一辆二...
    自在牛阅读 1,386评论 6 17
  • 在不经意间来到这个城市已经十六年了,从刚开时别人称呼自己小孩儿变成了大叔,我也无奈了,只好一笑而过了。 ...
    桃花悦悠然阅读 240评论 2 2