按键计数并以HTML格式显示

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (131)

我用HTML和Javascript制作了一个简单的“空格键模拟器”游戏。每次用户按空格键时,图像将被另一个图像替换,并且当该键被释放时,它将被重置为原始图像。

我想在页面上添加一个计数器,计算用户按空格键的次数。源代码如下:

var myRealUrl = "./assets/spacebar.png";
$("body").on("keydown", function (e) {
  if(e.which == 32){   
    $("#spacebar").attr("src", "./assets/spacebar_pressed.png")
  }
});

$("body").keyup(function (e) {
    $("#spacebar").attr("src", myRealUrl)
});

var button = document.getElementById('counter'),
  count = 0;
button.onclick = function() {
  count += 1;
  button.innerHTML = "Click me: " + count;
};

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="sv">

<head>
    <meta charset="utf-8">
    <title></title>
    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400" rel="stylesheet">
    <link rel="stylesheet" href="css/stylesheet.css">
    <script src="js/jquery-3.2.1.min.js"></script>

</head>

<body>
    <div class="container">
        <div class="title">
            <h1>Spacebar Simulator 2018</h1>
            <span id="counter"><p></p></span>
        </div>
        <img src="assets/spacebar.png" id="spacebar">
		<p>Pressed</p><p id="counter">0</p><p> times.</p>

        <footer>
            <p>&copy; 2018</p>
        </footer>
    </div>
    <script src="js/spacebar.js"></script>
</body>

</html>
提问于
用户回答回答于

设置页面级变量并在keydown事件处理程序中增加它。

您对“按钮”单击代码的尝试不起作用,因为p需要单击的元素内部没有内容,因此它没有在屏幕上呈现,因此没有任何内容可以点击。

此外,你不能有多个相同id的元素,并且把p放在一个span内部是无效的。

var counter = 0;  // Variable to hold the count
var myRealUrl = "./assets/spacebar.png";
var count = document.getElementById('counter');
$("body").on("keydown", function (e) {
  if(e.which == 32){   
    counter++; // Increment the counter
    $("#spacebar").attr("src", "./assets/spacebar_pressed.png");
    count.textContent = counter; // Log the count
  }
});

$("body").keyup(function (e) {
    $("#spacebar").attr("src", myRealUrl)
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="sv">

<head>
    <meta charset="utf-8">
    <title></title>
    <link href="https://fonts.googleapis.com/css?family=Montserrat:300,400" rel="stylesheet">
    <link rel="stylesheet" href="css/stylesheet.css">
    <script src="js/jquery-3.2.1.min.js"></script>

</head>

<body>
    <div class="container">
        <div class="title">
            <h1>Spacebar Simulator 2018</h1>
        </div>
        <img src="assets/spacebar.png" id="spacebar">
		<p>Pressed <span id="counter">0</span> times.</p>

        <footer>
            <p>&copy; 2018</p>
        </footer>
    </div>
    <script src="js/spacebar.js"></script>
</body>

</html>

扫码关注云+社区

领取腾讯云代金券