jquery - 类不会被 addClass 覆盖

标签 jquery css addclass

我正在使用 jQuery 的 addClass 向选项卡添加一个类,因此当单击时它将更改该类,因此很明显该选项卡会突出显示。

我的 HTML

<div id="mainNav">
            <ul>
                <li id="LinktheBand" onclick="nav('theBand')">The Band</li>
                <li id="linkTheMusic" onclick="nav('theMusic')">The Music</li>

我的CSS

#mainNav li {
    float:left;
    margin-right:5px;
    color:white;
    font-family:Tahoma;
    font-weight:bold;
    padding: 10px 8px 0px 8px;
    background:url('../images/transparent-65.png');
    height:40px;
    height: 25px !important;
    border:1px solid #000;
}

#mainNav li:hover {
    float:left;
    margin-right:5px;
    color:white;
    font-family:Tahoma;
    font-weight:bold;
    padding: 10px 8px 0px 8px;
    background: #660000;
    height:40px;
    height: 25px !important;
    border:1px solid #660000;
}

.mainNavSelected {
    float:left;
    margin-right:5px;
    color:white;
    font-family:Tahoma;
    font-weight:bold;
    padding: 10px 8px 0px 8px;
    background: #660000;
    height:40px;
    height: 25px !important;
    border:1px solid #660000;
}

我的 JavaScript

function nav(a) {
$('#'+a).show();
$('#Link'+a).addClass('mainNavSelected');
}

这工作正常,我检查 firebug 并可以看到添加了 class="mainNavSelected",但列表元素不采用新类的任何属性。 Firebug 列出了 mainNavSelected 的所有类项,但将它们全部划掉。我缺少什么来替换这个元素的类?

最佳答案

我认为这与 CSS 级联有关。 id 上的样式将覆盖类上的样式,即使它们是在之后声明的。尝试将 ul li a.mainNavSelected 放入 CSS 中,它应该可以工作。

另请注意,两个链接之间的 id 大小写不一致。

关于jquery - 类不会被 addClass 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3040030/

相关文章:

javascript - 如何为 Bootstrap slider 添加 onclick 功能?

javascript - attr 显示对象对象的值

css - :after transition doesn't work

jquery - 使用 jQuery 删除并向按钮添加类,添加的新类将无法使用它的点击功能

javascript - 如何使用 jQuery 从所有 div 中删除一个类,而不仅仅是 sibling ?

jquery - 检测复选框的默认 HTML 选中属性时出现问题

javascript - 多个图像 slider 加载图像错误

php - 将 Blob 对象保存为服务器上的文件

html - 在固定高度的容器中从上到下然后从左到右浮动 div

javascript - 当触发一个数组元素上的事件时(with querySelectorAll)触发他内部另一个数组的元素(也with querySelectAll)