javascript - jQuery 在加载时突出显示导航项

标签 javascript jquery html sass nav

我是 HTML/CSS/JS 新手,我正在做一些测试并摆弄一些东西,并决定在该页面上突出显示导航元素。我决定使用 jQuery 来解决这个问题,因为据我所知,这是最简单的解决方案。到目前为止,它工作得很好,但我的问题是,它在加载时没有突出显示主“聊天”页面,因为它只是网址,没有/index.html。如果您能帮助我在加载时将事件类添加到 index.html 元素,我将不胜感激。

HTML:

 <aside>
        <nav>
            <ul>
                <li><a href="/index.html">Chat</a></li>
                <li><a href="/friends.html">Friends</a></li>
                <li><a href="/settings.html">Settings</a></li>
            </ul>
        </nav>
    </aside>

JQuery:

jQuery(function($) {
    var path = window.location.href; 
    $('aside nav ul li a').each(function() {
    if (this.href === path) {
    $(this).addClass('active');
    }
});

SCSS:

  .active {
        border-right: 10px solid $accent-two;                                 
  }

最佳答案

首先,您的路径名包含整个 URL,因此它永远不会与 a 标记中的 href 匹配。您只需要获取页面名称。 接下来,您应该检查 a 标记的 href 属性,而不是 href 本身。 下面的示例使用虚拟链接来帮助演示。由于代码片段,我必须在 JS 中添加 href。

jQuery(function($) {
  var path = window.location.pathname;
  var page = path.split("/").pop();
  // 
  // The line below is for demo on stackoverflow purposes
  $("#forDemoOnStackPurpose").attr("href", page);
  //
  $('aside nav ul li a').each(function() {
    if ($(this).attr("href") === page) {
      $(this).addClass('active');
    }
  });
});
.active {
  border-right: 10px solid red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<aside>
  <nav>
    <ul>
      <li><a id="forDemoOnStackPurpose" href="">This test page</a></li>
      <li><a href="index.html">Chat</a></li>
      <li><a href="friends.html">Friends</a></li>
      <li><a href="settings.html">Settings</a></li>
    </ul>
  </nav>
</aside>

关于javascript - jQuery 在加载时突出显示导航项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52694205/

相关文章:

javascript - EXT4.1 GridPanel 上的鼠标悬停

jquery 删除空元素及其空子元素

javascript - 我如何在不影响其他标签的情况下编辑特定的 h4 标签

javascript - 模态关闭/打开

javascript - Ember 操作助手传递对单击元素的引用

javascript - jquery click() 事件不适用于 append 的 html 标签

ruby-on-rails - 创建动态集合选择rails 3.1

javascript - JavaScript 和表单重复问题

html - 嵌入的 Youtube 视频会增加网站的带宽吗?

javascript - Asp.net 客户端验证错误消息不断显示来自 jquery 的值更改