javascript - *已解决*单击按钮后如何执行功能?
问题描述
lives
每次buttonA
单击时,我都试图从变量中减去 1 条生命。但是该removeLives();
功能在buttonA
单击之前执行。
<html lang="en">
<body>
<div id="lives"></div>
<button id="buttonA" onClick="removeLives()">buttonA</button>
<script>
var lives = 3;
document.getElementById("lives").innerHTML="LIVES: " + removeLives();
document.getElementById("buttonA").onClick = function(){
removeLives() {
lives--;
return lives;
}
}
</script>
</body>
</html>
解决方案
当解释器运行 line.innerHTML="LIVES: " + removeLives();
时,removeLives
将被调用,导致lives
被递减并且新的内容更低。
而是将该行放在点击处理程序中,并最初lives
通过 HTML 填充 div。
此外,在 HTML 或.onclick
JS 中使用内联处理程序,但不能同时使用两者 - 最好避免内联处理程序,因为它们被普遍认为是不好的做法。要在 JS 中添加处理程序,请确保使用.onclick
,而不是.onClick
,它区分大小写。
lives
一旦达到 0 ,您可能还想停止递减。
var lives = 3;
document.getElementById("buttonA").onclick = function() {
lives--;
if (lives < 0) lives = 0;
document.getElementById("lives").innerHTML = "LIVES: " + lives;
};
<div id="lives">LIVES: 3</div>
<button id="buttonA">buttonA</button>
推荐阅读
- npm - 安装adonis cli时出现警告
- python - 无法导入 appscript python 模块
- python - python-rq:工作人员很忙,但 current_job 不存在
- python - 使用Flask单击按钮后无法打开html
- python - 需要帮助使用 firebase 流式休息 api 不起作用
- c++ - 没有要调用的匹配函数:错误:必须使用 '.*' 或 '->*' 来调用 'f (...)' 中的指向成员函数的指针,例如 '(... ->* f) ( ...)'
- c# - 从 C# 代码调用存储过程返回 -1
- google-apps-script - Google Drive 第三方快捷方式的工作原理
- python - 在 MultiIndex 中选择水平对的子集元组
- c++ - 从其自定义构造函数重新分配派生对象的正确方法是什么