javascript - 从 JavaScript 禁用悬停规则

标签 javascript css

我想在触发某些 JavaScript 代码时禁用 :hover 规则。

我的 CSS 是这样的:

.headerfoldout a{
    background-color: red;
}
.headerfoldout a:hover{
    background-color: blue;
}

当这个 JavaScript 被触发时,我改变了 headerfoldout 颜色,但我希望它保持相同的颜色,即使在悬停时也是如此。

我用来设置css的JavaScript如下:

document.getElementById("headerfoldout").setAttribute("style", "background-color: green;");

最佳答案

与使用 JavaScript 应用样式相比,使用 CSS 并在 Js 中使用类更安全:

.headerfoldout a {
    background-color: red;
}

.headerfoldout a:hover {
    background-color: blue;
}

.green.headerfoldout a, .green.headerfoldout a:hover {
    background-color: green;
}

在 Js 中:

// without checking the classname
document.getElementById("headerfoldout").className += " green";

更安全的方法:

// checking the classname
var element, name, arr;
element = document.getElementById("headerfoldout");
name = "green";
arr = element.className.split(" ");
if (arr.indexOf(name) == -1) {
    element.className += " " + name;
}

注意:我更喜欢className 而不是classList 因为it will work in all browsers .

编辑:

如评论中所述,classList 可用于简化代码:

 document.getElementById("headerfoldout").classList.add("green");

但请注意,IE9 不支持

关于javascript - 从 JavaScript 禁用悬停规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51487693/

相关文章:

javascript - 鼠标悬停(显示内容)javascript

javascript - 无法在 testcafe 中切换全屏

javascript - 在多个 div 元素中随机排列内容的任何方式

javascript - 自定义滚动条流出屏幕

javascript - 当我想让它覆盖另一个图像时,我的图像似乎锁定在 block 显示中

javascript - 从 Javascript 文件更改 JSP

javascript - 模态表单上的 jQuery Submit() vc click()

javascript - 如何使用 React/Firestore 获取单个文档?

javascript - 未从 $http 范围设置 Angular 绑定(bind)变量

javascript - 使用 CSS float 的动态布局宽度