Javascript Jquery更改类单击

Javascript Jquery更改类单击,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是一个很简单的问题,但我不理解这个问题。 我正在单击div change类,但当我单击正在更改的div时,它不起作用 $(.one”)。单击(函数(){ $(this.attr('class','two'); }); $(“.two”)。单击(函数(){ $(this.attr('class','one'); }); .one{宽度:50px;高度:50px;背景色:红色;} .two{宽度:50px;高度:50px;背景色:蓝色;} 如果向不存在的元素添加了侦听器,则在本例中需要dele

这是一个很简单的问题,但我不理解这个问题。 我正在单击div change类,但当我单击正在更改的div时,它不起作用

$(.one”)。单击(函数(){
$(this.attr('class','two');
});
$(“.two”)。单击(函数(){
$(this.attr('class','one');
});
.one{宽度:50px;高度:50px;背景色:红色;}
.two{宽度:50px;高度:50px;背景色:蓝色;}


如果向不存在的元素添加了侦听器,则在本例中需要delegate event@temaniaf如果没有,则代码实际上不是这样工作的。$('.one')选择器获取对应用了这两个类的所有当前元素的引用,然后单击为每个元素添加事件侦听器。运行此代码后,更改类无效。第二个$('.two')将不返回任何元素,因此不会添加任何事件侦听器。你可以在这里看到这样一个例子:@AdamH我说的是错的?:)。。他在
.two
中添加了一个侦听器,但该元素不存在(我说过),因此代码无法工作,他需要事件委托,就像我共享的代码一样,并且正在工作。。。或者像你所做的那样,有很多解决方案,但主要问题是same@TemaniAfif他尝试将侦听器添加到.two对其代码没有影响。没有将两个元素作为一个类的元素,因此不会应用单击部分。然而,他确实有一个带有一个类的元素,他的第一行JavaScript将click事件附加到这些元素上,因此它可以工作。对代码的唯一更改是向第一个事件处理程序添加toggleClass调用,然后他可以删除$('.two')调用。您提出的解决方案不起作用,因为它将删除应用于该元素的任何其他类,这就是为什么toggle类在这种情况下更好。@Temaniaf请看一下您的解决方案的这一细微变化,以及它如何打破superImportantClass的要求。第二个$('.two')调用不返回任何内容,也不添加任何事件侦听器,不需要它,因为没有应用了两个类的元素。最初的$('.one')调用就是所需的全部。
$(".one").click(function() {
$(this).toggleClass('one');
$(this).toggleClass('two');
});

$(".two").click(function() {
$(this).toggleClass('one');
$(this).toggleClass('two');
});