jQuery addClass 单击并再次单击时删除Class
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18120331/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
jQuery addClass click and removeClass when click again
提问by KevDev
I have a box without color. if the box is being click()
it will addClass('.red')
to make it red, and if click again the box color change to blue. they change alternatively. and I don't know how to make it.
我有一个没有颜色的盒子。如果框正在click()
,它将addClass('.red')
使其变为红色,如果再次单击,框颜色将变为蓝色。它们交替变化。我不知道怎么做。
Code
代码
HTML
HTML
<div class='box'></div>
CSS
CSS
.box {
width: 250px;
height: 100px;
border: 1px #000 solid;
}
.red {
background: red;
}
.blue {
background: blue;
}
Javascript
Javascript
$('div').click(function() {
$(this).addClass('red');
});
回答by Gautam3164
Try with toggleClass
like
尝试toggleClass
喜欢
$('div').click(function() {
$(this).toggleClass("red");
});
If you want to toggle 2 classes
red
and blue
then use like
如果你想切换2 classes
red
和blue
再使用类似
$('div').click(function() {
$(this).toggleClass("red blue");
});
回答by billyonecan
If you want to change from white to red, and then red to blue, you can't use toggleClass()
. You'd have to write some simple conditions to decide which class to add:
如果要从白色变为红色,再由红色变为蓝色,则不能使用toggleClass()
. 您必须编写一些简单的条件来决定添加哪个类:
$('div').click(function() {
var $this = $(this);
if ($this.hasClass('blue')) {
$this.removeClass();
} else if ($this.hasClass('red')) {
$this.removeClass('red').addClass('blue');
} else {
$this.addClass('red');
}
});
Here's a fiddle
这是一把小提琴
If you only want to switch between the classes red and blue, just add one of the classes to the markup, so that you can toggle between them:
如果您只想在红色和蓝色类之间切换,只需将其中一个类添加到标记中,以便您可以在它们之间切换:
<div class="blue">Hello World!</div>
Then just use toggleClass():
然后只需使用toggleClass():
$('div').click(function() {
$(this).toggleClass('red blue');
});
Here's another fiddle
这是另一个小提琴
回答by Daniele
use hasClass()
.hasClass()
to check the assigned class, try something like this:
要检查分配的班级,请尝试以下操作:
$('div').click(function() {
if($('div').hasClass('red')) {
$(this).removeClass('red').addClass('blue');
}
else{
$(this).removeClass('blue').addClass('red');
}
});
回答by Jay Shukla
$('div').click(function() {
if($(this).hasClass('red'))
{
$(this).addClass('blue').removeClass('red');
}
else
{
$(this).addClass('red').removeClass('blue');
}
});