【问题标题】:Count key presses and display them in HTML计算按键并在 HTML 中显示
【发布时间】:2018-12-18 22:20:22
【问题描述】:

我用 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>

【问题讨论】:

  • 您遇到了什么问题?

标签: javascript html counter keypress onkeypress


【解决方案1】:

所以设置一个页面级变量并在keydown 事件处理程序中递增它。

您对“按钮”单击代码的尝试无效,因为需要单击的 p 元素内部没有内容,因此它没有呈现在屏幕上,因此没有可单击的内容开。

此外,您不能拥有多个具有相同 id 的元素,并且在 span 中放置 p 是无效的。

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>

【讨论】:

    猜你喜欢
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2014-07-08
    • 2020-04-11
    相关资源
    最近更新 更多