切换使用删除和添加类

时间:2017-08-03 16:57:00

标签: jquery

$('#x').click(function(){
  $('#x').removeClass('linex').addClass('line');
})
.line {
color: red;
}

.linex {
color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='x' class='max linex'>line</div>

在我的代码中,当我点击div时,我将类转换为line(red),但是我希望它是可逆的,所以当我在line中时再次点击它再次进入linex(blue)

5 个答案:

答案 0 :(得分:2)

使用toggleClass

&#13;
&#13;
$('#x').click(function(){
  $('#x').toggleClass('linex').toggleClass('line');
})
&#13;
.line {
color: red;
}

.linex {
color: blue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='x' class='max linex'>line</div>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

将你的js更改为:

$('#x').click(function(){
  $('#x').toggleClass('line linex');
});

答案 2 :(得分:0)

您可以在功能上使用toggleClass("line")。 没有必要切换两个类只是类行是足够的,因为你的div在第一个有类行和函数覆盖它。

$('#x').click(function(){
  $('#x').toggleClass('line');
});

答案 3 :(得分:0)

你可以让它变得更容易一些。我建议的解决方案是添加默认的颜色样式:红色到div。这意味着你的div的文字颜色将是红色。单击div时,您只需切换linex类。这将添加该类(如果不存在)或删除该类(如果存在)并将使您的代码更短更好。感谢

答案 4 :(得分:0)

无需在dom中再次查找该ID ...它已在事件处理程序中以this的形式提供。

toggleClass()

中使用空格分隔的类

&#13;
&#13;
$('#x').click(function(){
  $(this).toggleClass('linex line');
});
&#13;
.line {
color: red;
}

.linex {
color: blue;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='x' class='max linex'>line</div>
&#13;
&#13;
&#13;