抱歉,这是一个非常简单的问题,但是由于某些原因,我无法正常工作。

我想要做的是将activeButton类添加到您单击的每个列表项中,然后将activeButton类删除到单击了列表项之前具有activeButton类的列表项中。

这是我的问题的代码片段



$(document).ready(function () {
				$('.buttons').click(function () {
					$('.activeButton').removeClass('.activeButton');
					$(this).addClass('.activeButton');
			});
		});

.buttons {
  /*This is for decorative and visual purposes.
    So you can ignore the CSS for now.*/
  display: inline-block;
  margin: 10px;
  }

.activeButton {
  border-bottom: 1px solid black;/*I use border-bottom to provide underlines for my text. This allows the underline to be transitioned or animated*/
  }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
				<li class="buttons activeButton">Link1</li>
				<li class="buttons">Link2</li>
				<li class="buttons">Link3</li>
				<li class="buttons">Link4</li>
			</ul>





为了澄清起见,我将解释我的目标和当前问题。

目标:一旦单击列表项,则将.activeButton类添加到被单击的列表项中,并且JS将从最初具有activeButton类的列表项中删除.activeButton。

问题:我编码的尝试解决方案不起作用。

最佳答案

你是这样说的吗?



$(document).ready(function () {
  $('.buttons').click(function () {
    $('.buttons').removeClass('activeButton'); // <-- remove from all .buttons class
    $(this).addClass('activeButton'); // <-- add to clicked link only
  });
});

.buttons {
  /*This is for decorative and visual purposes.
    So you can ignore the CSS for now.*/
  display: inline-block;
  margin: 10px;
  }

.activeButton {
  border-bottom: 1px solid black;/*I use border-bottom to provide underlines for my text. This allows the underline to be transitioned or animated*/
  }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
				<li class="buttons activeButton">Link1</li>
				<li class="buttons">Link2</li>
				<li class="buttons">Link3</li>
				<li class="buttons">Link4</li>
			</ul>

关于javascript - addClass和removeClass无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35540884/

10-09 05:41