从元素中删除:active伪类

bas*_*dan 8 javascript pseudo-class

我希望能够告诉一个元素,它不再:active是CSS规则不再适用的.有没有办法在JavaScript中这样做?

Tim*_*yen 6

可能的解决方案 :

1)使用课程:

JS:

document.getElementById("element").classList.remove("hasactive");
Run Code Online (Sandbox Code Playgroud)

CSS:

#element.hasactive:active {
    background:blue;
}
Run Code Online (Sandbox Code Playgroud)

2)防止默认的mousedown功能(活动状态):

编辑:显然,这只适用于Firefox.

JS:

document.getElementById("element").onmousedown = function(event) {
    event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)

3)删除其中包含css规则的样式元素

HTML:

<style id="activestyle">
#element:active {
/*Your code here*/
}
</style>
Run Code Online (Sandbox Code Playgroud)

JS:

document.getElementById("activestyle").remove();
Run Code Online (Sandbox Code Playgroud)


Pin*_*nal 0

使用document.activeElement

document.activeElement = null;
Run Code Online (Sandbox Code Playgroud)

或者

document.activeElement && document.activeElement.blur();
Run Code Online (Sandbox Code Playgroud)

  • 这是为了检测 :focus 状态,而不是 :active 状态 (2认同)