html - 带有按钮的导航栏在单击时获得事件属性但在选择其他按钮时丢失它们

标签 html css navbar addclass removeclass

所以我想要的是一个带有 6 个按钮的简单菜单。目标是当我们点击它们时按钮改变背景颜色,但当我们点击另一个按钮时颜色恢复到原始状态。我尝试使用一些事件类将属性与一些脚本一起添加到事件按钮(链接),但它不起作用。菜单在一个框架中,内容在目标框架中(我不想将导航栏代码复制到每个页面),这就是我使用“目标”的原因,但我认为这就是问题所在。

我希望有人能帮助我,因为我对此一窍不通,花了很多时间研究但没有成功。

HTML:

  • 事件
  • 成员
  • 元素
  • 出版物
  • 联系人

CSS:

#menu1 ul {
float:left;
width:100%;
list-style-type:none;
padding:0;
margin:0;
}

#menu1 li {
display:inline;
text-align:center;
}

#menu1 a {
float:left;
width:120px;
padding:0 5px 0 5px;
}

#menu1 a:hover {
background-color:#eee;
}

#menu1 a:active {
background-color:#ddd;
}

#menu1 li.active {
background-color:#eee;
}

JS:

$(document).ready(function()
{$('ul.menu1 li a').click(function (e)
{$('ul.menu1 li.active').removeClass('active');
$(this).parent('li').addClass('active');
});          
});

最佳答案

你很接近。只是有些混淆类 vs id。我认为这可以满足您的需求:

HTML:

<ul id="menu1">
    <li><a href="#">Home</a></li>
    <li><a href="#">Activities</a></li>
    <li><a href="#">Members</a></li>
    <li><a href="#">Projects</a></li>
    <li><a href="#">Publications</a></li>
    <li><a href="#">Contacts</a></li>
</ul>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

CSS:

#menu1 {
float:left;
width:100%;
list-style-type:none;
padding:0;
margin:0;
}

#menu1 li {
display:inline;
text-align:center;
}

#menu1 li a {
float:left;
width:120px;
padding:0 5px 0 5px;
}

#menu1 li a:hover {
background-color:#eee;
}

#menu1 li a:active {
background-color:#ddd;
}

#menu1 li a.active {
background-color:#eee;
}

JS:

$(document).ready(function(){
    $('#menu1 li a').click(function (e){
        e.preventDefault();
        console.log($('#menu1 li.active'));
        $('#menu1 li a.active').removeClass('active');
        console.log($(this));
        $(this).addClass('active');
        console.log('done');
    });         
});

https://jsfiddle.net/hopkins_matt/t4vykesg/

关于html - 带有按钮的导航栏在单击时获得事件属性但在选择其他按钮时丢失它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28506312/

相关文章:

html - react 引导 CSS : I want my Container element to fill more of the entire page horizontally

automated-tests - Telerik Test Studio - 在 Kendo UI 之外与网页 slider 交互

twitter-bootstrap - 使用 bootstrap 4 是否安全,因为它是 alpha 版本?

css - 为什么我不能在 firefox 中使用一些 svg?

html - 我的 fa fa-bars 没有显示 - 响应式顶部导航

html - 图片不在CSS中居中

html - 使图像与跨度文本重叠

javascript - 滚动时隐藏导航栏,但这样做不是动画而是自然 'scrolled away'

css - 什么是富?我在许多 CSS 和 Web 设计示例中看到过它

css - 徽章增加导航栏高度