jquery - 事件类菜单 HTML-CSS-JS 不工作

标签 jquery html css

我不确定我做错了什么。一旦我从菜单的一个选项切换到另一个,我希望菜单的颜色改变颜色。这是我的:

    $(document).ready(function() {
      $('ul li a').click(function() {
        $('li a').removeClass("#menu .current_page_item a");
        $(this).addClass("#menu .current_page_item a");
      });
    });
#menu li:hover a,
#menu li.active a,
#menu li.active span {
  background: #2980b9;
  color: rgba(255, 255, 255, 1);
}
#menu .current_page_item a {
  background: #2980b9;
  color: rgba(255, 255, 255, 1);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="menu">
  <ul>
    <li class="current_page_item"><a href="index.html" accesskey="1" title="">Homepage</a>
    </li>
    <li><a href="staging.html" accesskey="2" title="Staging">Staging Form</a>
    </li>
    <li><a href="UAT.html" accesskey="4" title="">UAT</a>
    </li>
    <li><a href="PILOT.html" accesskey="8" title="">PILOT</a>
    </li>
    <li><a href="#" accesskey="5" title="">PROD</a>
    </li>
    <li><a href="#" accesskey="7" title="">Remediation</a>
    </li>
  </ul>
</div>

如果有人能帮助我,我将不胜感激!

最佳答案

我在您的代码中发现了 2 个问题:

1) RemoveClass 和 Addclass 不能包含特殊字符。它不是 css 选择器。您只能传入它的类值。在您的代码中,您放置了 id 并在类名之前添加了点。替换:$('li a').removeClass("#menu .current_page_item a");removeClass("current_page_item")

2)点击的时候是<a>被点击的是 <li> , 所以你必须把 parent()为了将 addClass 定位到 <li>

这是带有片段的完整代码:

#menu li:hover a, #menu li.active a, #menu li.active span
{
    background: #2980b9;
    color: rgba(255,255,255,1);
}    

#menu .current_page_item a
{
    background: #2980b9;
    color: rgba(255,255,255,1);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="menu">
<ul>
<li class="current_page_item"><a href="index.html" accesskey="1" title="">Homepage</a></li>
<li><a href="#" accesskey="2" title="Staging">Staging Form</a>          </li>
<li><a href="#" accesskey="4" title="">UAT</a></li>
<li><a href="#" accesskey="8" title="">PILOT</a></li>
<li><a href="#" accesskey="5" title="">PROD</a></li>
<li><a href="#" accesskey="7" title="">Remediation</a></li>
  

<script>
$(document).ready(function(){
$('ul li a').click(function(){
$('ul li').removeClass("current_page_item");
$(this).parent().addClass("current_page_item");
});
});
</script>

关于jquery - 事件类菜单 HTML-CSS-JS 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40243888/

相关文章:

css - 带有原因 react 的 webpack css 加载器

javascript - 将递归 jQuery For every 循环转换为 JavaScript 以进行 VBA 脚本控制

javascript - 如何对 HTML 表格执行实时搜索和过滤

javascript - 在android中使用javascript设置内容时的编码问题

带有目标的 HTML 链接

javascript - 如何添加 va

jquery - 响应式导航选项卡,即可折叠的导航选项卡

CSS:如何根据字符高度与行高设置样式

javascript - jQuery 选择插件 : Capturing focus to open when tabbing

jQuery 和 html 5 <template> 标签