奎歪歪 2021-12-27 00:17 采纳率: 50%
浏览 194
已结题

jq实现导航栏效果,即选中的文字改变颜色

当我这样写的时候,是能够实现导航栏选择效果的


<style>
    .active {
        color: wheat;
    }

    .none {
        color: blue;
    }
</style>
<div class="menu">
    <nav class="nav">
        <div class="wrap">
            <ul>
                <li><a href="#"><span>最新</span></a></li>
                <li><a href="#"><span>数码</span></a></li>
            </ul>
        </div>
    </nav>
</div>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script>
    $('span').click(function() {
        var f = this;
        $('span').each(function() {
            this.className = this == f ? 'active' : 'none'
        });
    });
</script>

但是当我给超链接加target的时候,原本实现的导航栏选中效果就会消失如下

<style>
    .active {
        color: wheat;
    }

    .none {
        color: blue;
    }
</style>
<div class="menu">
    <nav class="nav">
        <div class="wrap">
            <ul>
                <li><a href="#" target="123"><span>最新</span></a></li>
                <li><a href="#" target="123"><span>数码</span></a></li>
            </ul>
        </div>
    </nav>
</div>
<script src="https://cdn.bootcss.com/jquery/1.10.2/jquery.min.js"></script>
<script>
    $('span').click(function() {
        var f = this;
        $('span').each(function() {
            this.className = this == f ? 'active' : 'none'
        });
    });
</script>

请教一下各位,如何在使用target的情况下保证导航栏选择效果的实现!

  • 写回答

1条回答 默认 最新

  • 关注

    你为什么要加target="123"啊?
    你加target="123"点击之后是打开了一个新的标签页面了啊.
    新的标签页面加载了与之前相同的页面.
    文字改变颜色的是原来的标签页面,新打开的标签页面中你没有点击自然不会改变颜色
    你切换回原来的标签页面看看

    img

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 创建了问题 12月27日