MVC点击菜单一直保持高亮状态



MVC 用于菜单链接的部分都是放在_Layoutout.cshtml中的,自定义的网页都是嵌入到上述网页中(通过@RenderBody()嵌入自定义网页部分)。

当然也可以自定义菜单链接页,本人直接用_Layoutout.cshtml可以满足需求。

下面说说如何点击菜单,该菜单项一直保持高亮状态。

1、 本文的菜单链接是通过ul   li实现的:(_Layoutout.cshtml中)

<div class="navbar-collapse collapse">
                <ul class="nav navbar-nav" style="font-size:large;font-weight:bold;">
                    <li id="x">@Html.ActionLink("查询任务", "Index", "Home")</li>
                    <li id="y">@Html.ActionLink("查询进度", "OperationProcedure", "Home")</li>                    
                    <li id="z">@Html.ActionLink("联系方式", "Contact", "Home")</li>
                </ul>
                @Html.Partial("_LoginPartial")
            </div>


2、 由于_Layoutout.cshtml没有方法接收从后台传过来的值(我没有找到可以从后台传值到_Layoutout.cshtml的方法,有知道的可以告诉我),所以单纯的处理li点击事件,只有在点击的时候可以改变颜色,点击之后就又回到默认的颜色了。这是因为点击事件发生在整个页面加载完之前,等页面加载完后用的是我们默认的css样式。

所以,解决方法就是在页面加载完后处理。这个时候就要用到我们的@ViewBag.Title,这个值很管用,它可以在_Layoutout.cshtml和自定义的页面之间随意传值。

上脚本处理代码:(_Layoutout.cshtml中)

<script type=text/javascript>
    $(document).ready(function () {
        var item = this.nameProp;
        var value;
        if (item == 'Home - 订单条码跟踪系统') { value = 'x' }
        if (item == 'OperationProcedure - 订单条码跟踪系统') { value = 'y' }
        if (item == 'Contact - 订单条码跟踪系统') { value = 'z' }
        d = document.getElementsByTagName('li')
        for (p = d.length; p--;) {
            if (d[p].id != value) {d[p].style.backgroundColor = ''}
            else {d[p].style.backgroundColor = '#d8ecfc';/*点击后背景色*/}
        }
    })
    </script>


不要怪我用整个@ViewBag.Title的内容,我也想用去字串,判断特殊字符在字串中的位置,无奈IE显示对象无法识别indexof方法或属性,所以直接就这样了。。。


上面代码都是调试通过的,放心使用。





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值