javascript - 更改 Javascript 中一系列选项卡的背景颜色

标签 javascript jquery html frontend

我正在开发一个应用程序,在前端我有一些自定义选项卡,当单击其中一个选项卡时,我会捕获选项卡上的文本,例如住院病人,并且背景颜色在捕获值后发生变化。

我的目标是我希望一次单击一个选项卡。基本上, 当前单击的选项卡的背景颜色应该改变 以及先前单击的选项卡背景颜色时捕获的值(选项卡上的文本) 恢复到原来的状态。

标记代码

<div class="row">
    <div class="col-11 mx-auto d-flex jbiz-plans">
        <div class="col flex-fill benefit text-center">
        <img src="{{ asset('images/care.png')}}">  <br>
            Inpatient
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Outpatient
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Dental
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Optical
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Maternity
        </div>
    </div>
</div>

我正在使用的 JavaScript 逻辑

let bgColor = false;
$(".benefit").click(function () {
    if (bgColor = !bgColor) {
        $(this).css("background-color", "#ba0c2f");
        $(this).css("color", "#fff");
        //alert($(this).text());
    } else {
        $(this).css("background-color", "#d6d2c5");
        $(this).css("color", "gray");
    }
});

最佳答案

将所有好处的颜色重置为默认值,然后设置单击元素的值应该可以工作。

let bgColor = false;
$(".benefit").click(function () {
    $('.benefit').css("background-color", "");
    $('.benefit').css("color", "");
    if (bgColor = !bgColor) {
        $(this).css("background-color", "#ba0c2f");
        $(this).css("color", "#fff");
    } else {
        $(this).css("background-color", "#d6d2c5");
        $(this).css("color", "gray");
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
    <div class="col-11 mx-auto d-flex jbiz-plans">
        <div class="col flex-fill benefit text-center">
        <img src="{{ asset('images/care.png')}}">  <br>
            Inpatient
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Outpatient
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Dental
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Optical
        </div>
        <div class="col ml-1 flex-fill benefit text-center">
            <img src="{{ asset('images/care.png')}}">  <br>
            Maternity
        </div>
    </div>
</div>

关于javascript - 更改 Javascript 中一系列选项卡的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58372041/

相关文章:

javascript - 如何在 AngularJS 中使用 ng-repeat 和数组时创建对象

html - 文本溢出在 Safari 中与居中文本一起工作很奇怪

javascript - ng-repeat 后 Angular 不更新 css

javascript - 如何从另一个模块调用函数

javascript - 如何递归地对数字求和javascript

javascript - jQuery .load() 不会不起作用

javascript - 在移动设备中制作 Bootstrap 导航,从左侧展开而不是下拉。

javascript - 游戏评分返回 NaN,+= 运气不好

javascript - 单击时将类添加到事件菜单

javascript - 发送 POST 请求 - angular4