CSS按钮:悬停,禁用,然后用javascript重新启用
CSS button: hover, disabling then re-enabling with javascript
我有一些按钮有悬停效果,使按钮的颜色在悬停时变深(使用css)。
当用户点击这些按钮时,我通过javascript禁用它们。
当我想要程序(游戏)再次开始,我通过javascript重新启用按钮,CSS按钮:悬停效果不再工作。
解决方案吗?
javascript的enable/disable按钮函数是:
function jsEnableElement(id) {
if ( document.getElementById(id) ) {
document.getElementById(id).style.background = "#3399FF";
document.getElementById(id).style.cursor = "pointer";
document.getElementById(id).disabled = false;
}
}
function jsDisableElement(id) {
if ( document.getElementById(id) ) {
document.getElementById(id).style.background = "#DDDDDD";
document.getElementById(id).style.cursor = "default";
document.getElementById(id).disabled = true;
}
}
我不知道为什么当你改变一个元素的背景颜色,即使你保持它的ID或类名的行为中断。但显然它是。
另一个解决这个问题的方法,也许是一个更好的方法,就是改变元素的类。
我不知道你想禁用什么元素,但我使用一个DIV作为例子。可以在这里找到一个工作演示:
http://jsfiddle.net/yVVk6/但为了完整起见,我也会在这里添加代码
<html>
<head>
<script>
function jsEnableElement(id) {
if ( document.getElementById(id) ) {
document.getElementById(id).removeAttribute("disabled");
document.getElementById(id).className = "enabled";
//document.getElementById(id).disabled = false;
}
}
function jsDisableElement(id) {
if ( document.getElementById(id) ) {
document.getElementById(id).removeAttribute("enabled");
document.getElementById(id).className = "disabled";
//document.getElementById(id).disabled = true;
}
}
</script>
</head>
<body>
<div id="hallo" class="enabled" onclick="jsDisableElement('hallo');">Click me to disable</div>
<div onclick="jsEnableElement('hallo');">Click me to enable it again</div>
</body>
CSS: .enabled {
background: #3399FF;
}
.enabled:hover {
background: #00FF66;
}
.disabled {
background: #DDD;
}
编辑:我想提到的另一件事是,如果你选择这个解决方案,那么我真的建议你使用像jQuery这样的库。它允许您轻松地编辑、删除或向元素添加类。在这个例子中,我只是删除了元素中的所有类。
我认为你可以直接给出如下属性:
document.getElementById("btnL1").setAttribute("disabled","true") //to disable the button
document.getElementById("btnL1").removeAttribute("disabled") //enable it again
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 如何在 API 调用后和 if 语句中启用提交按钮
- 语义ui如何使用javascript启用或禁用下拉列表
- IE6在启用/禁用文本字段上闪烁
- 传单中如何在更改基层时启用/禁用覆盖层
- 根据字段的值启用按钮
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 如何禁用和启用css规则
- 淘汰赛.JS'启用'长度绑定条件不起作用
- 在新类 jQuery 上启用可拖动
- JavaScript 启用新的 HTML5 按钮属性:formaction、formmethod
- jQuery 性能问题,通过为新元素启用拖放
- Javascript——如何在不使用新运算符的情况下启用静态方法,同时防止使用实例函数
- 如何在使用窗口后启用浏览器选项卡.打开以启动一个新窗口
- 创建一个表单提交按钮,启用“在新窗中打开”;当用户右键点击时
- 检查打开新选项卡时是否启用了弹出窗口阻止程序
- 如何在加载新页面时启用jquery标签/单选按钮
- 有没有一种好方法来启用“在新窗口中打开链接”?在dom节点上的浏览器菜单选项,而不使链接跟随单击
- 如何启用超链接打开模态对话框,同时也允许在同一链接上的新选项卡中打开
- Jquery:如果其他滑动开关被启用(可见),在启动新的滑动开关之前关闭