Javascript代码未运行,该如何解决?

时间:2019-05-30 20:53:24

标签: 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();
}

Console也完全不说话。

1 个答案:

答案 0 :(得分:1)

我修复了一些问题,并更改了一些不需要修复的问题。三个关键点:

  • 如前所述,Randy有点苛刻,您的第二个事件侦听器正在覆盖您的第一个事件侦听器,因此点击率没有增加

  • 第二个事件侦听器的if语句中的括号出现了一些问题

  • 尽管检查mag图标可能可行,但是在代码中使用图标感觉就像是要打破一些东西,因此我将其更改为取模检查,以查看命中率是奇数还是偶数。

    < / li>

您在正确的轨道上。将来遇到此类问题时,请尝试将控制台日志语句放在代码中的不同位置。对哪些变量在什么时候应该具有什么值进行预测,然后检查它们是否有,然后,如果没有,则尝试找出原因。

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>