首页 > 解决方案 > 我的 JavaScript onClick 函数有问题

问题描述

我已经开始做一个游戏,有点类似于“花比尔盖茨的钱”,但我说过要稍微改变一下。我已经完成了第一项,并且尝试使用 JS 对其进行编辑,因此每次您按“购买”时,它都会从您身上扣除 1 美元,或者,当您按“卖出”时,它会给您 1 美元。问题是,每次我点击时,它只计算一次。另外,如果我按“买入”,然后按“卖出”,它会立即给我 11 美元,而不是 10 美元。文件名:index.html

<!DOCTYPE html>
<html>

<head>

<meta charset="UTF-8">
<meta name="viewport" content="width = device-width, initial-scale = 1.0">
<link href="https://fonts.googleapis.com/css?family=Roboto+Slab&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<title>Spend you own money</title>
<script src="script.js">

</script>

<link rel="stylesheet" href="style.css">

<body>
<noscript>You need to enable javascript in order to have fun!</noscript>

<h1 class="center" id = "money">Money Left: 10</h1><!--Money = 100 000 000 000-->
<div class= "main">
    <div class="pen">
    <h2>Pen</h2>
    <input type="submit" class="sell" value="Sell" onclick="sellpen()">
   <!-- <input type="text" class="amount" value = 0 id = "amountpen" readonly="readonly" size="9%"> -->
    <input type="submit" class="buy" value="Buy" onclick="amountpen()" >
    </div>
</div>
      


</body>
</head>
</html>

文件名:script.js

var money = 10; //dollars
var pen = 1; // dollar
var mpen = money-pen;
var ppen = money+pen;
function amountpen() {
    document.getElementById("money").innerHTML = "Money Left: " + mpen;
     money = money-1;
}
function sellpen() {
    document.getElementById("money").innerHTML = "Money Left: " +ppen;
    money = money+

标签: javascripthtmlonclick

解决方案


您的 script.js 将是这样的:

var money = 10; 
var pen = 1; 
function amountpen() {
     var mpen = money-pen;
     document.getElementById("money").innerHTML = "Money Left: " + mpen;
     money = money-1;
}
function sellpen() {
    var ppen = money+pen;
    document.getElementById("money").innerHTML = "Money Left: " +ppen;
    money = money+1;
}

推荐阅读