Jquery 我想删除以前添加的类

Jquery 我想删除以前添加的类,jquery,Jquery,我想在同一个标记中删除和添加类 假设我有一个标记名: <button class="a">change class</button> 当类添加时。现在我想删除类“c”并添加类“a” $('body').on('click','.c', function(){ $(this).addClass('a').removeClass('c'); }); 我试过这个。但不起作用。问题在于,代码将单击处理程序连接到。a元素将其直接连接到元素。稍后,当委托的.c事件发生时

我想在同一个标记中删除和添加类

假设我有一个标记名:

<button class="a">change class</button>
当类添加时。现在我想删除类“c”并添加类“a”

$('body').on('click','.c', function(){
    $(this).addClass('a').removeClass('c');
 });

我试过这个。但不起作用。

问题在于,代码将单击处理程序连接到
。a
元素将其直接连接到元素。稍后,当委托的
.c
事件发生时,两个处理程序都将运行。您可以看到,如果在处理程序中设置断点。在这里,由于不能在堆栈片段中设置断点,我添加了日志记录:

$('.a')。在('click',function()上{
log(“Direct.a handler run”);
$(this.addClass('c')。removeClass('a');
});
$('body')。在('click','c',function()上{
log(“delegate.c处理程序已运行”);
$(this).addClass('a').removeClass('c');
});
.a{
颜色:蓝色;
字体大小:粗体;
}
c{
颜色:红色;
字体大小:粗体;
}
更改类

尝试在类之间切换

使用
切换类

$('.a')。单击(函数(){
$(this.toggleClass('ca'))
});


更改类
一种方法,将最后添加的类删除到

通过生成类的字符串来添加类

从最后一个字符串中删除一个类,并再次将字符串更新为元素


另一种方法是 将最后添加的类添加为元素中的“last class”属性

然后在需要删除类之后,取“last class”属性值的值,并使用removeClass()从元素中删除类

$('body').on('click','.c', function(){
    $(this).addClass('a').removeClass('c');
 });