使用Javascript删除CSS悬停功能
Remove CSS hover functionality using Javascript
我需要使用JavaScript删除CSS悬停功能。
我在一个表单上有一个按钮,它将数据提交给我们的数据库服务器。使用ASP.NET按钮控件的OnClientClick()
,我想将元素的文本更改为"Submiting.."使用getElementById()
,将按钮的背景色更改为浅灰色,更重要的是禁用以下功能。button:悬停效果我在CSS中有。
.button:hover,
.content-form input.button:hover,
#comment-form #submit:hover
{
background-color: #333;
}
我真正感兴趣的是Javascript来删除/禁用上面的CSS
e.g. OnClientClick="getElementByID('ButtonName').blahblahblah;"
工作小提琴:https://jsfiddle.net/bm576q6j/17/
var elms = document.getElementsByClassName("test");
var n = elms.length;
function changeColor(color) {
for(var i = 0; i < n; i ++) {
elms[i].style.backgroundColor = color;
}
}
for(var i = 0; i < n; i ++) {
elms[i].onmouseover = function() {
changeColor("gray");
};
}
编辑:很抱歉在我回答之前没有注意到你问题的最后一部分:)
有很多解决方案可以解决您的问题。
例如:
1-使用HTML disabled attribute
。
OnClientClick="getElementByID('ButtonName').disabled=true;
2-添加一个替代以前样式的类。
.button:hover,
.content-form input.button:hover,
#comment-form #submit:hover
{
background-color: #333;
}
.button.submitted:hover
{
background-color: gray;
}
Js:
OnClientClick="getElementByID('ButtonName').className = "submitted";
等等
在这种情况下,它删除了class属性,消除了所有定义的类,但随后添加了不应删除的类。
关于jsfiddle
function disableHover(elem) {
elem.removeAttribute('class');
elem.setAttribute('class', 'another');
}
.button:hover {
background-color: #333;
}
.another {
background-color: lightgray;
}
<button class="button" onclick="disableHover(this);">hover</button>
但是实现这一点的最佳方法非常简单且效果良好。
function disableHover(elem) {
elem.classList.remove('button');
elem.classList.add('another');
}
.button:hover {
background-color: #333;
}
.another {
background-color: lightgray;
}
<button class="button" onclick="disableHover(this);">hover</button>
关于jsfiddle
首先,您的css是错误的。应该是:
.button:hover, .content-form input.button:hover, #comment-form, #submit:hover {
background-color: #333;
}
您正在添加带有id和class的css。你不应该那样做。只需添加class并使用document.getElementById('submit').removeAttribute('class')
相关文章:
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 悬停功能触发器
- 使用Jquery创建一个具有单击和悬停功能的菜单
- 美国地图插件,具有状态数据/悬停功能的新按钮
- JS“切换”或“悬停”功能
- 如何在保持鼠标悬停功能的同时居中跨过图像
- Jquery悬停功能显示和隐藏元素
- 在悬停功能中设置超时
- 不支持悬停功能
- 鼠标悬停功能获胜'不起作用
- 关于单击或悬停功能
- 使用 JavaScript 显示和隐藏导航栏进行滚动和悬停功能
- Jquery滑动悬停功能显示.stop错误(但仍然有效)
- jQuery菜单幻灯片悬停功能加载太快
- 悬停功能在插件中无限循环
- 悬停/鼠标悬停功能冲突
- Javascript悬停功能
- 出现Javascript悬停功能
- 防止在其子元素上移动时悬停功能
- 需要Javascript单击和悬停功能