CSS按钮:悬停,禁用,然后使用javascript重新启用

CSS按钮:悬停,禁用,然后使用javascript重新启用,javascript,css,hover,Javascript,Css,Hover,我有一些按钮有一个悬停效果,使按钮颜色更暗的悬停(与css) 当用户单击这些按钮时,我通过javascript禁用它们 当我想重新启动程序(游戏)并通过javascript重新启用按钮时,css按钮:悬停效果不再起作用 有什么解决办法吗 javascript启用/禁用按钮功能包括: function jsEnableElement(id) { if ( document.getElementById(id) ) { document.getElementById(id).style.b

我有一些按钮有一个悬停效果,使按钮颜色更暗的悬停(与css)

当用户单击这些按钮时,我通过javascript禁用它们

当我想重新启动程序(游戏)并通过javascript重新启用按钮时,css按钮:悬停效果不再起作用

有什么解决办法吗

javascript启用/禁用按钮功能包括:

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作为示例。可以在此处找到一个工作演示:

但为了完整起见,我也会在这里添加代码

<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>
编辑:
我想提到的另一件事是,如果您使用这个解决方案,那么我真的建议您使用jQuery这样的库。它允许您轻松地编辑、删除或向元素添加类。在本例中,我只需从元素中删除所有类。

我认为您可以直接给出如下所示的属性:

document.getElementById("btnL1").setAttribute("disabled","true")   //to disable the button
document.getElementById("btnL1").removeAttribute("disabled")       //enable it again

你能显示你的按钮的HTML吗请。。。taa和函数jsHangmanCheckLetter(sID,sLetter){try{if(g_GameIsActive==true){jsDisableElement(sID);}}}catch(err){alert(“ERROR::sHangmanCheckLetter(sLetter)::“+err);}我认为您误解了这个问题-启用/禁用有效-问题是css:hover属性在再次启用后不起作用。这是一种纯JavaScript方式来操作类。。。。很简单。。。。如果这个帖子帮助了你,请考虑把它标记为答案,用户108748。谢谢
document.getElementById("btnL1").setAttribute("disabled","true")   //to disable the button
document.getElementById("btnL1").removeAttribute("disabled")       //enable it again