我有一个没有颜色的盒子。如果该框为click()
,它将addClass('.red')
使其变为红色,如果再次单击,则框颜色变为蓝色。他们交替改变。而且我不知道如何制作它。
<div class='box'></div>
.box {
width: 250px;
height: 100px;
border: 1px #000 solid;
}
.red {
background: red;
}
.blue {
background: blue;
}
$('div').click(function() {
$(this).addClass('red');
});
答案 0 :(得分:13)
尝试toggleClass
喜欢
$('div').click(function() {
$(this).toggleClass("red");
});
如果您想切换2 classes
red
和blue
,请使用
$('div').click(function() {
$(this).toggleClass("red blue");
});
答案 1 :(得分:4)
如果您想要从白色变为红色,然后从红色变为蓝色,则无法使用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');
}
});
如果您只想在红色和蓝色类之间切换,只需将其中一个类添加到标记中,以便您可以在它们之间切换:
<div class="blue">Hello World!</div>
然后只使用toggleClass():
$('div').click(function() {
$(this).toggleClass('red blue');
});
答案 2 :(得分:2)
$('div').click(function() {
if($(this).hasClass('red'))
{
$(this).addClass('blue').removeClass('red');
}
else
{
$(this).addClass('red').removeClass('blue');
}
});
答案 3 :(得分:1)
.hasClass()
检查指定的类,尝试这样的事情:
$('div').click(function() {
if($('div').hasClass('red')) {
$(this).removeClass('red').addClass('blue');
}
else{
$(this).removeClass('blue').addClass('red');
}
});