javascript - 使用 Javascript 在 <li> 处于事件状态时更改背景颜色

标签 javascript jquery html css

我想更改 <li> 的背景颜色当我点击那些 li > a 时,类(class)活跃的地方.在这种情况下我该怎么做。他是我试过的:

脚本

<script>
    $('.sidebar-collapse .nav > li > a').click(function (e) {
        var $this = $(this);
        if ($this.hasClass('active')) {
            $this.removeAttr('background');
        }
    });
</script>

风格

.sidebar-collapse .nav > li > a {
    background: #EFEFEF;
    text-shadow: none;
    color: #595959;
    border-top: 1px solid #dfdfdf;
}

菜单列表 HTML

<nav class="navbar-default navbar-side" role="navigation">
    <div class="sidebar-collapse">
        <ul class="nav" id="main-menu">
            <li>
                <a href="default.aspx"><i class="fa fa-desktop "></i>Dashboard</a>
            </li>
            <li>
                <a href="#"><i class="fa fa-edit "></i>UI Elements<span class="fa arrow"></span></a>
                <ul class="nav nav-second-level">
                    <li>
                        <a href="#">Notifications</a>
                    </li>
                    <li>
                        <a href="#">Elements</a>
                    </li>
                    <li>
                        <a href="#">Free Link</a>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#"><i class="fa fa-table "></i>Table Examples</a>
            </li>
            <li>
                <a href="#"><i class="fa fa-edit "></i>Forms </a>
            </li>
            <li>
                <a href="#"><i class="fa fa-sitemap "></i>Multi-Level Dropdown<span class="fa arrow"></span></a>
                <ul class="nav nav-second-level">
                    <li>
                        <a href="#">Second Level Link</a>
                    </li>
                    <li>
                        <a href="#">Second Level Link</a>
                    </li>
                    <li>
                        <a href="#">Second Level Link<span class="fa arrow"></span></a>
                        <ul class="nav nav-third-level">
                            <li>
                                <a href="#">Third Level Link</a>
                            </li>
                            <li>
                                <a href="#">Third Level Link</a>
                            </li>
                            <li>
                                <a href="#">Third Level Link</a>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li>
                <a href="#"><i class="fa fa-qrcode "></i>Tabs & Panels</a>
            </li>
            <li>
                <a href="#"><i class="fa fa-bar-chart-o"></i>Mettis Charts</a>
            </li>

            <li>
                <a href="#"><i class="fa fa-edit "></i>Last Link </a>
            </li>
            <li>
                <a href="blank.aspx"><i class="fa fa-table "></i>Blank Page</a>
            </li>
        </ul>
    </div>
</nav>

最佳答案

如果您受限于 js 解决方案,则需要使用 css .由于 background 不是属性而是样式,无法“删除”。

$('.sidebar-collapse .nav > li > a').click(function (e) {
    var li = $(this).closest('li');
    if (li.hasClass('active')) {
        li.css('background-color', 'transparent'); //or inherit
    }
});

或者纯 CSS 解决方案。哪个是首选:

.sidebar-collapse .nav > li.active > a {
    background-color: transparent;
}

关于javascript - 使用 Javascript 在 <li> 处于事件状态时更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24860699/

相关文章:

javascript - "Unexpected Identifier"当传递 ajax 调用产生的对象时

php - 从 file_get_contents 更改/删除 html

javascript - 使用JavaScript/jQuery执行 "pause"并等待用户输入

html - 无论屏幕大小如何,都可以在 HTML 表单中正确间隔输入字段?

javascript - 单击警报消息中的确定后如何关闭浏览器中的当前窗口?

javascript - Angular 的 $q.reject() 与 deferred.reject()

javascript - 即使我刷新,文本框值仍然存在?

php - 使用 XMLHttpRequest 将大型数组从 Javascript 发送到 PHP

jquery - Fullcalendar - 需要为特定日期设置背景颜色

javascript - 如何使用 hashchange 获得 beforeunload 功能?