javascript - 从 JavaScript 禁用悬停规则
问题描述
我想:hover
在触发某些 JavaScript 代码时禁用规则。
我的CSS看起来像这样:
.headerfoldout a{
background-color: red;
}
.headerfoldout a:hover{
background-color: blue;
}
当这个 JavaScript 被触发时,我改变了 headerfoldout 颜色,但我希望它保持相同的颜色,即使在悬停时也是如此。
我用来设置css的JavaScript如下:
document.getElementById("headerfoldout").setAttribute("style", "background-color: green;");
解决方案
使用 CSS 和在 Js 中使用类比使用 JavaScript 应用样式更安全:
.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
因为它适用于所有浏览器。
编辑:
如评论中所述,classList
可用于简化代码:
document.getElementById("headerfoldout").classList.add("green");
但请注意,IE9 不支持它。
推荐阅读
- react-native - 如何在视图中获取文本输入值?
- python - 我将如何编写一个嵌入代码,从我有 URL 的一组图像中提供一个随机图像?(不和谐.py)
- jenkins - 詹金斯在 8080 端口建造工作时停止
- java - 为什么我不能将新节点附加到 LinkedList?
- docker - 使用证书更新后 kubelet.service 失败
- amazon-web-services - 使用 ANSIBLE 创建 RDS 数据库
- javascript - 基于登录用户的 ObjectID 从 Mongo 获取数据
- reactjs - 没有重载与简单反应应用程序上的此调用匹配
- python - 我如何应用逻辑回归算法来使用卫星数据绘制决策边界
- javascript - 作用域链和闭包的区别