Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript我的函数赢了';第二次它不工作';s咔嗒一声_Javascript_Html - Fatal编程技术网

javascript我的函数赢了';第二次它不工作';s咔嗒一声

javascript我的函数赢了';第二次它不工作';s咔嗒一声,javascript,html,Javascript,Html,嘿,伙计们,我对JavaScript还比较陌生,需要一些帮助。我尝试了一些不同的方法,但我似乎无法理解。我的命令功能有问题。函数的第一部分将我的类从“keyboard”或“keyboard_normal”更改为“keyboardCmd”。我希望第二部分根据我在h3标记中写的内容将类改回“keyboard”或“keyboard_normal”。我把第二部分放在另一个函数中,我称之为回归,并给它一个pressed参数,因为我计划以后重用它 该类更改为“keyboardCmd”很好,但当我再次单击sp

嘿,伙计们,我对JavaScript还比较陌生,需要一些帮助。我尝试了一些不同的方法,但我似乎无法理解。我的命令功能有问题。函数的第一部分将我的类从“keyboard”或“keyboard_normal”更改为“keyboardCmd”。我希望第二部分根据我在h3标记中写的内容将类改回“keyboard”或“keyboard_normal”。我把第二部分放在另一个函数中,我称之为回归,并给它一个pressed参数,因为我计划以后重用它

该类更改为“keyboardCmd”很好,但当我再次单击span时,它不会更改为“keyboard”或“keyboard\u normal”。我尝试将registe()中的代码放入commandhold()中,而不是registe函数,但是类从“keyboardCmd”更改为“keyboard\u normal”或“keyboard”时没有成功

“onclick”位于我的cmdLeft和cmdRight跨距上。为了安全起见,我还尝试了我的cmdLeft\u悬停和cmdRight\u悬停跨距,但这也没用

我在一个临时网站上发布了我目前拥有的内容。我希望这有帮助。

这是我的HTML:

    <body>
    <h3 id = "changeH3Text" onClick="changeNameToLetters()">Regular Keyboard on Hover</h3>
      <div id="keyboardContainer" class="keyboard">
      <div class = "row6">

             <span id="cmdLeft" onClick="commandHeld()">
             <span class="hover"  id="cmdLeft_hover"></span>
             </span>


              <span id="cmdRight" onClick="commandHeld()">
             <span class="hover"  id="cmdRight_hover"></span>
             </span>
      </div><!--end of row 6 div-->
   </div><!--end of keyboardContainer div-->
</body>

一个小小的探视者发现:

  • 代码中存在无效条件(函数
    commandhold
  • 回归
    函数(keyboardstate!=keyboardstate)中也有输入错误
  • 工作代码:

    function changeNameToLetters() {
        //keyboard container variables
        var keyboardState = document.getElementById("keyboardContainer");
        var currentClass = keyboardState.className;
    
        //h3 text variables
        var h3Text = document.getElementById("changeH3Text");
        var currentText = h3Text.innerHTML;
    
        if (currentClass == "keyboard_normal" && currentText == "Tool Name on Hover") {
            keyboardState.className = "keyboard";
            h3Text.innerHTML = "Regular Keyboard on Hover";
        } //end if
        else {
            keyboardState.className = "keyboard_normal";
            h3Text.innerHTML = "Tool Name on Hover";
        } //end else
    } //End function
    
    function commandHeld() {
        //keyboard container variables
        var keyboardState = document.getElementById("keyboardContainer");
        var currentClass = keyboardState.className;
    
        //h3 text variables
        var h3Text = document.getElementById("changeH3Text");
        var currentText = h3Text.innerHTML;
    
        if (currentClass == "keyboard_normal" || currentClass == "keyboard") {
            keyboardState.className = "keyboardCmd";
    
        } //End if
        else {
            regress('keyboardCmd');
        }
    
    } //End function
    
    function regress(pressed) {
        //keyboard container variables
        var keyboardState = document.getElementById("keyboardContainer");
        var currentClass = keyboardState.className;
    
        //h3 text variables
        var h3Text = document.getElementById("changeH3Text");
        var currentText = h3Text.innerHTML;
    
        if (currentText == "Tool Name on Hover" && currentClass == pressed) {
    
            keyboardState.className = "keyboard_normal";
    
        } //End if
        else {
            keyboardState.className = "keyboard";
        }
    } //End Function
    

    是您的朋友:)

    我试着穿上它,但仍然无法理解您试图归档的内容。您能提供您的代码的JSFIDLE版本吗?如果(currentClass==“keyboard_normal”| |“keyboard”),则此行中可能存在不正确的情况;还想知道你是否真的没有使用这些注释,我试着把它放在JSFIDLE上,但结果不是很好@BangDao在一个临时网站上发布了我到目前为止所拥有的内容,我希望它能帮助@Vishal,我并没有实际使用这些评论。在我发布后,我注意到我使用了/*而不是我喜欢键盘的想法,顺便说一下:)非常感谢你的回答!现在效果很好:)我试着把它改成那样,但没有改变任何东西,所以我把它改了回去,我没有意识到它是无效的。我将尝试更有效地使用chrome中的调试器。非常感谢Zathrus。
    function changeNameToLetters() {
        //keyboard container variables
        var keyboardState = document.getElementById("keyboardContainer");
        var currentClass = keyboardState.className;
    
        //h3 text variables
        var h3Text = document.getElementById("changeH3Text");
        var currentText = h3Text.innerHTML;
    
        if (currentClass == "keyboard_normal" && currentText == "Tool Name on Hover") {
            keyboardState.className = "keyboard";
            h3Text.innerHTML = "Regular Keyboard on Hover";
        } //end if
        else {
            keyboardState.className = "keyboard_normal";
            h3Text.innerHTML = "Tool Name on Hover";
        } //end else
    } //End function
    
    function commandHeld() {
        //keyboard container variables
        var keyboardState = document.getElementById("keyboardContainer");
        var currentClass = keyboardState.className;
    
        //h3 text variables
        var h3Text = document.getElementById("changeH3Text");
        var currentText = h3Text.innerHTML;
    
        if (currentClass == "keyboard_normal" || currentClass == "keyboard") {
            keyboardState.className = "keyboardCmd";
    
        } //End if
        else {
            regress('keyboardCmd');
        }
    
    } //End function
    
    function regress(pressed) {
        //keyboard container variables
        var keyboardState = document.getElementById("keyboardContainer");
        var currentClass = keyboardState.className;
    
        //h3 text variables
        var h3Text = document.getElementById("changeH3Text");
        var currentText = h3Text.innerHTML;
    
        if (currentText == "Tool Name on Hover" && currentClass == pressed) {
    
            keyboardState.className = "keyboard_normal";
    
        } //End if
        else {
            keyboardState.className = "keyboard";
        }
    } //End Function