JQuery中的addClass是否覆盖任何现有的基于css类的样式?

And*_*rew 2 css jquery addclass

我正在尝试为点击的元素添加一个类.元素已经分配了几个clases,包括一个带边框的clases.

虽然我知道我可以使用removeClass()删除当前的CSS类,但我需要该类提供的其他样式.所以我想知道下面的例子,我不能用addClass()覆盖边框样式是边框是否已经设置了属性?我不想使用内联样式,因为它们不易维护.

CSS:

.dibHighlight{border:1px solid orange;}
Run Code Online (Sandbox Code Playgroud)

JQuery不起作用:

$(this).closest('.drop').addClass('dibHighlight'); // Doesn't work
Run Code Online (Sandbox Code Playgroud)

有效的JQuery:

$(this).closest('.drop').css({ border: "1px solid orange" }); // Works
Run Code Online (Sandbox Code Playgroud)

Ada*_*ice 10

您可以addClass根据CSS特性的规则覆盖其他类,就像CSS类class在元素上使用属性时覆盖/继承属性一样.

你的第二个例子工作的原因是因为它等同于style根据CSS特性在元素上设置属性,这是最具体的.

相反,第一个例子不起作用,因为可能有一个更具体的CSS类 .dibHighlight