javascript - Javascript代码没有运行,我该如何解决?
问题描述
当我点击空格然后改变放大镜以倾斜另一个方向时,我的代码应该在计数器上加 1。当我击中空间时,它什么也没做。
我已经解决了我看到的所有问题,但没有任何效果。也许别人知道,我真的不擅长js。
var hits = 0;
var hitElement = document.querySelector( '.hits' );
document.body.onkeydown = function(e) {
if( e.keyCode == 32 ) {
addHit();
}
}
var mag = "";
var hitElement2 = document.querySelector( '.mag' );
document.body.onkeydown = function(f) {
if( f.keyCode == 32 ) {
if( mag.text == "") {
mag = "";
renderMag();
else
mag = "";
renderMag();
}
}
}
var addHit = function() {
hits++;
renderHits();
}
var renderMag = function() {
hitElement2.innerHTML = mag;
}
var renderHits = function() {
hitElement.innerHTML = hits;
}
var resetHits = function() {
hits = 0;
renderHits();
}
控制台也绝对什么也没说。
解决方案
我修复了一些东西并改变了一些不需要修复的东西。三个关键点:
如前所述,如果有点苛刻的话,兰迪,你的第二个事件监听器覆盖了你的第一个,所以点击率没有增加
第二个事件侦听器的 if 语句中的括号有一些问题
虽然检查 mag 图标可能会起作用,但在代码中使用图标感觉就像要求打破某些东西,所以我将其更改为模检查,以查看命中是奇数还是偶数。
你走在正确的轨道上。当您将来遇到此类问题时,请尝试将控制台日志语句放在代码中的各个位置。预测哪些变量在哪些点应该有什么值,然后检查它们是否有,如果没有,试着找出原因。
var hits = 0;
var hitElement = document.querySelector('.hits');
var mag = "";
var hitElement2 = document.querySelector('.mag');
document.body.onkeydown = function(f) {
if (f.key == ' ') {
addHit();
if (hits % 2 === 0) {
mag = "";
renderMag();
} else {
mag = "";
renderMag();
}
}
}
function addHit() {
hits++;
renderHits();
}
function renderMag() {
hitElement2.innerHTML = mag;
}
function renderHits() {
hitElement.innerHTML = hits;
}
function resetHits() {
hits = 0;
renderHits();
}
<div class="hits"></div>
<div class="mag"></div>
推荐阅读
- instance - 上电时实例化一个游戏对象 godot
- javascript - Vue2.x 中伪元素内容的动态样式
- linux - Git init 仍然给我 master 而不是我配置中的默认分支名称(main)
- python - 如何编写一个python程序来判断输入的数字是否可以形成三角形?
- javascript - Discord.js - 尝试向新成员添加角色时出现机器人错误
- java - 这个 Java 程序在哪里卡住了?
- java - 我可以在 cmd 中从 JAR 执行多个程序吗?
- vhdl - 同一进程中的两个时钟域
- pyspark - 根据 PySpark 中的条件比较两个数据帧
- coq - 用共归纳假设证明共归纳定理