JavaScript 我的函数在第二次被点击时将无法工作
javascript my function won't work the second time it's clicked
嘿伙计们,我对JavaScript还比较陌生,需要一些帮助。我尝试了一些不同的事情,但我似乎无法弄清楚。我的命令保持功能有问题。我的函数的第一部分将我的类从"键盘"或"keyboard_normal"更改为"keyboardCmd"。我希望第二部分根据我在 h3 标签中编写的内容将类改回"键盘"或"keyboard_normal"。我将第二部分放在另一个我称为 regress 的函数中,并给了它一个 press 参数,因为我计划稍后重用它。
类更改为"keyboardCmd"很好,但是当我再次单击我的跨度时,它不会更改为"键盘"或"keyboard_normal"。我尝试将 regress () 中的代码放入 commandHeld () 而不是回归函数中,但类从"keyboardCmd"更改为"keyboard_normal"或"键盘"没有运气。
"onclick"在我的cmdLeft和cmdRight Spans上。为了安全起见,我也用我的cmdLeft_hover和cmdRight_hover跨度尝试了它,但这也没有帮助。
我在一个临时网站上发布了我迄今为止的内容。我希望这有所帮助。http://keyboard.businesscatalyst.com/index.html
这是我的 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>
这是我的javascript:
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" || "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
在Chrome控制台上闲逛时发现:
- 代码中存在无效条件(函数
commandHeld
) regress
函数中还有一个错别字(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
调试器是你的朋友:)
相关文章:
- 咖啡的Javascript订单总数无法使函数正常工作.请协助
- removeClass函数没有'工作不正常
- 你能解释一下这个阶乘函数是如何工作的吗?
- JavaScript链接在点击时不起作用;函数在页面加载时工作
- jQuery加载的async和ready函数不工作
- 更改智能表中的页面将停止JQuery函数的工作
- 为什么不是'我的函数在解析云代码中工作吗?当我在Angular和Express中测试时,它是有效的
- jQuery函数不能只在一个页面上工作
- 如何检查这个代码点火器php函数是否工作,该函数是否在ajax url中使用
- 从js引擎的角度来看闭包和构造函数是如何工作的
- appendChild在函数外部工作,但在函数内部不工作
- 如何在php中创建一个函数,该函数与文本区域一起工作,通过输入类似[color:red]的内容来打印具有等效颜色的文本
- 由于某种原因,我的JavaScript函数无法工作
- 为什么递归生成器函数没有't在ES2015工作
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 从控制台中的工作函数转换为工作脚本.(请参阅编辑)
- Angular JS-工作函数中的“错误:[$interpole:interr]Can't interpole:
- 简化工作函数以替换特定单词
- 为什么不在回调中工作函数?
- InnerHTML不工作:函数未定义