当点击时更改 li 的背景颜色

4

当单击 li 锚点时,我希望更改背景颜色:

<div class="text-center row">
  <ul  class="col-md-12 secondNav">
    <li class="navbar-brand nav-item" style="margin-right: 9%">
      <a href="#" ><strong>INICIO</strong> </a>
    </li>
    <li  class="navbar-brand nav-item" >
      <a href="#"><strong>COMPARAR</strong></a>
    </li>
  </ul>
</div>

可能是更改单击时li元素的背景的重复问题。 - Nick
4个回答

2
您可以使用jQuery更改
  • 的背景。以下是代码:
    $(document).ready(function(){
      $('.nav-item').click(function(e){
      $(e.target).css('backgroundColor', 'red');
       });
    });
    

    {{链接1:jsfiddle}}


  • 1

    因此,虽然我不一定推荐这种解决方案。但实际上可以在不使用JavaScript的情况下完成!请查看此示例:https://jsfiddle.net/age5zdkb/2/

    <div class="text-center row">
      <ul  class="col-md-12 secondNav">
        <a href="#" >
          <li class="navbar-brand nav-item" style="margin-right: 9%">
            <input type="checkbox" id="demo"/>
            <label for="demo"><strong>INICIO</strong></label>
          </li>
        </a>
        <a href="#" >
          <li  class="navbar-brand nav-item" >
            <input type="checkbox" id="demo1"/>
            <label for="demo1"><strong>COMPARAR</strong></label>
          </li>
        </a>
      </ul>
    </div>
    
    label {
        display: block;
    }
    
    input[type="checkbox"] {
      display:none;
    }
    
    #demo:checked + label, #demo1:checked + label {
        background: pink;
        color: white;
    }
    

    0

    以下是您可以在没有任何依赖项的情况下完成它的方法。

    const listItems = document.querySelectorAll('.navbar-brand');
    
    listItems.forEach(li => {
      li.addEventListener('click', () => {
        li.classList.toggle('alt-background');
      });
    });
    .alt-background {
      background-color: lightgray;
    }
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <div class="text-center row">
      <ul  class="col-md-12 secondNav">
        <li class="navbar-brand nav-item" style="margin-right: 9%">
          <a href="#" ><strong>INICIO</strong> </a>
        </li>
        <li  class="navbar-brand nav-item" >
          <a href="#"><strong>COMPARAR</strong></a>
        </li>
      </ul>
    </div>

    jsFiddle

    的内容与编程有关。

    0

    你可以使用jQuery在点击导航项时添加active类,然后在CSS中为活动项添加背景颜色。

    https://jsfiddle.net/binoy/g6e1bykx/3/

    In JS
    
       $(document).ready(function(){
                $('.nav-item').click(function(e){
                    $('.secondNav .nav-item').removeClass('active');
                    $(this).addClass('active');
                 });
        });
    
    
    
    In  CSS
    .secondNav .nav-item.active {
      background-color: red;
    }
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接