单击时如何选择 li 元素?

Nic*_*ahn 0 html javascript css jquery twitter-bootstrap-3

我有以下代码。一旦我移开光标,背景颜色就会立即变回白色。li当用户单击时如何选择元素?

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">
<link href="https://netdna.bootstrapcdn.com/font-awesome/2.0/css/font-awesome.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<div class="col-sm-2 col-md-2" id="sidebar-wrapper">
  <div id="sidebar">
    <ul class="nav list-group" style="cursor:pointer;">
      <li class="active">
        <a class="list-group-item"><i class="icon-home icon-1x"></i>Work Order</a>
      </li>
      <li>
        <a class="list-group-item"><i class="icon-home icon-1x"></i>Work Order Jobs</a>
      </li>
    </ul>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Sti*_*ers 5

既然你已经使用了 jQuery,为什么不直接使用 click 函数呢?

仅选择一项

$('.nav li').click(function() {
  $(this).toggleClass('active').siblings().removeClass('active');
});
Run Code Online (Sandbox Code Playgroud)

js小提琴

用于选择多个项目:

$('.nav li').click(function() {
  if ($(this).hasClass('active')) {
    $(this).removeClass('active');
  } else {
    $(this).addClass('active');
  }
});
Run Code Online (Sandbox Code Playgroud)

js小提琴

在您的 CSS 中,background-color按如下方式覆盖。它实际上是在<a>标签上设置的,而不是<li>在 Bootstrap 中设置的。

.nav>li.active>a {
  background-color: #ccc;
}
Run Code Online (Sandbox Code Playgroud)