javascript - 尝试将事件类添加到菜单项

标签 javascript jquery html css

我花了 2 个小时尝试创建一个事件菜单但没有成功,所以我想我会寻求帮助。我有一个 html 菜单,一些 js 和 css...

$(function() {
  var pgurl = window.location.href.substr(window.location.href
    .lastIndexOf("/") + 1);
  $("#index li a").each(function() {
    if ($(this).attr("href") == pgurl || $(this).attr("href") == '')
      $(this).addClass("active");
  })
});
.active { font-weight:bold;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='index'>
  <div class='container'>

    <div class='top'>
      <h1><a href='/' title='The Maths Project'>The Maths Project</a></h1>
    </div>
    <ul class='section active_section' id='section_2'>
      <li><span id='section_title_2' class='section_title'><a href='#' id='section_link_2'>Against the odds.</a></span>
        <ul>
          <li id='exhibit_106' class='exhibit_title'><a href="../against-the-odds/introduction"> &rarr; Introduction</a>
          </li>
          <li id='exhibit_83' class='exhibit_title'><a href='../against-the-odds/deriving-functions'> &rarr; Deriving functions</a>
          </li>
          <li id='exhibit_83' class='exhibit_title'><a href='../against-the-odds/exploiting-odds'> &rarr; Exploiting odds</a>
          </li>
        </ul>
      </li>
    </ul>
    <ul class='section' id='section_3'>
      <li><span id='section_title_3' class='section_title'><a href='http://themathsproject.co.uk' id='section_link_3'>Remembering everything.</a></span>
        <ul>
          <li id='exhibit_104' class='exhibit_title'><a href='../against-the-odds/black-swans'>black swans</a>
          </li>
          <li id='exhibit_72' class='exhibit_title'><a href='../against-the-odds/in-here-it-is-yesterday'>in here it is yesterday </a>
          </li>
        </ul>
      </li>
    </ul>
  </div>
</div>

当用户在特定页面上时,他们点击的“a”链接应该变为粗体。但是,无论出于何种原因,它都不起作用。

如果有任何帮助,我将不胜感激

问候,

jack

最佳答案

我不清楚你的问题,但你想将事件类设置为菜单,所以你试试下面的代码

$('#navlist a').click(function(e) {
    e.preventDefault(); //prevent the link from being followed
    $('#navlist a').removeClass('selected');
    $(this).addClass('selected');
});
.nav { 
    color: green;  
}
.selected { 
    color: red; 
}
.san ul li{
    float:left;
    margin-right: 25px;
}
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
<div class="san">
    <ul id="navlist">
        <li><a class="nav" href="">Home</a></li>
        <li><a class="nav" href="">About Us</a></li>
        <li><a class="nav" href="">Services</a></li>
        <li><a class="nav" href="">Contact</a></li>
    </ul>
</div>

关于javascript - 尝试将事件类添加到菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41588458/

相关文章:

iphone - 如何阻止我的长 <select> 下拉列表文本在 iPhone 上被缩短?

javascript - 显示从函数返回的 HTMLTableElement 对象

javascript - 在 typescript 类中使用 "this"

javascript - jQuery 上带有可折叠子菜单的菜单

javascript - SpeechSynthesis.speak(在 Web Speech API 中)在 Google Chrome 中总是在几秒钟后停止

javascript - 附加到 div 的位置跨度元素

javascript - JS 源在 Chrome/Firefox 调试器中不可见,但在页面中正确加载

javascript - IE9 处于 Quirks 模式......什么可能导致此代码出现问题?

javascript - 错误: Permission denied to access property '$'

javascript - 如何使用 jQuery(仅限 Firefox 问题)通过所有 <options> 旋转 <select> 字段