再次单击时,jQuery addClass click和removeClass

Mar*_*rkB 2 html javascript css jquery

我有一个没有颜色的盒子.如果包装盒正在click()它将addClass('.red')使其红色,如果再次单击框颜色变为蓝色.他们交替改变.而且我不知道该怎么做.

HTML

<div class='box'></div>
Run Code Online (Sandbox Code Playgroud)

CSS

.box {          
    width: 250px;
    height: 100px;    
    border: 1px #000 solid;
}

.red {
    background: red;
}

.blue {
    background: blue;
}
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$('div').click(function() {
    $(this).addClass('red');
});
Run Code Online (Sandbox Code Playgroud)

jsfiddle的链接

Gau*_*164 14

试试toggleClass喜欢

$('div').click(function() {
    $(this).toggleClass("red");
});    
Run Code Online (Sandbox Code Playgroud)

如果你想切换2 classes redblue再使用类似

$('div').click(function() {
    $(this).toggleClass("red blue");
});
Run Code Online (Sandbox Code Playgroud)


bil*_*can 5

如果要从白色变为红色,再由红色变为蓝色,则不能使用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');
    }
});
Run Code Online (Sandbox Code Playgroud)

这是一把小提琴

如果您只想在红色和蓝色类之间切换,只需将其中一个类添加到标记中,以便您可以在它们之间切换:

<div class="blue">Hello World!</div>
Run Code Online (Sandbox Code Playgroud)

然后只需使用toggleClass():

$('div').click(function() {
    $(this).toggleClass('red blue');
});
Run Code Online (Sandbox Code Playgroud)

这是另一个小提琴