首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动菜单背景颜色

活动菜单背景颜色
EN

Stack Overflow用户
提问于 2012-07-13 13:19:10
回答 3查看 1.9K关注 0票数 0

我有竖排菜单。它是.glossymenu。使用css as .glossymenu a.menuitem可以访问菜单项。当菜单项被选中或菜单项处于活动状态时,我想要更改背景颜色。我正在尝试使用以下JQuery:

代码语言:javascript
复制
$(".glossymenu a.menuitem").click(function(){
  $(this).siblings(".active").removeClass("active");
  $(this).addClass("active");
});

但是,我不能用这个解决我的问题。任何想法,如何更改菜单项的背景颜色,当它被选中时。当菜单处于活动状态时,当我们在空白区域中的菜单项之外单击时,它不应该改变。谢谢,Prasad

EN

回答 3

Stack Overflow用户

发布于 2012-07-13 14:04:45

假设这是您的html的样子:

代码语言:javascript
复制
<ul class="glossymenu">
    <li><a class="menuitem active" href="#">Item</a></li>
    <li><a class="menuitem" href="#">Item</a></li>
    <li><a class="menuitem" href="#">Item</a></li>
</ul>​

CSS如下所示:

代码语言:javascript
复制
.glossymenu li {
    margin-bottom: 20px;
}

.glossymenu a {
    background-color: pink;
    padding: 5px 10px;
}

.glossymenu .active {
    background-color: #bada55;
}​

那么你的js应该是这样的:

代码语言:javascript
复制
$('.glossymenu .menuitem').on('click', function(e) {
    e.preventDefault();
    $('.glossymenu .active').removeClass('active');
    $(this).addClass('active');
});

你可能会遇到的问题是,siblings()不会选择任何其他锚点标签,因为它们不是被点击的锚点的兄弟。

jsFiddle:http://jsfiddle.net/Vestride/qhSQ4/

编辑:

我为你做了一个新的jsfiddle (link),但是我仍然很困惑你想做什么,以及你让脚本更通用是什么意思。

也许这会帮助你解决问题。http://sixrevisions.com/javascript/20-excellent-javascript-navigation-techniques-and-examples/

票数 1
EN

Stack Overflow用户

发布于 2012-07-13 13:49:21

我认为您应该使用jQuery的悬停功能。

代码语言:javascript
复制
$(".glossymenu a.menuitem").hover(function(){
  $(this).siblings(".active").removeClass("active");
  $(this).addClass("active");
}, function() {
  $(this).removeClass("active");
});
票数 0
EN

Stack Overflow用户

发布于 2012-07-13 14:08:22

活动状态在CSS中可用,最好使用该状态。

代码语言:javascript
复制
a.menuitem:active { background-color: #c00; }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11464545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档