2017-01-18 4 views
1

私は下に3つのボタンがあり、ボタンは+1とマークされています。 Transfer money to Bankのボタンは、ウォレットの金額を銀行に移動し、ウォレットを0にリセットする必要がありますが、何も呼び出されていないか、動作していません。私は絶対に立ち往生しています。助けてください。私のコードが実行されていない理由を理解できません

あなただけの関数の代わりにVARを使用
<html> 
    <head> 
     <title>Area 52</title> 
    </head> 
    <body> 
     <h1><center>Area 52</center></h1> 
     <p><center><p Id="name">User</p><p>Is currently logged on</p></center><p> 
    <script> 
     var money=0 
     var bank=0 
     var Money_handler(money,bank,op){ 
     alert("!") 
     if (op=="add"){ 
      money+=1 
      document.getElementById('wallet').innerHTML = money; 
      return money; 
     } 
     if (op=="bank"){ 
      bank=bank+money 
      document.getElementById('bank').innerHTML = bank; 
      money=0 
      document.getElementById('wallet').innerHTML = money; 
      return money 
     } 

     } 
     var namer=function(){ 
     var x=prompt("What is your name?"); 
     document.getElementById('name').innerHTML = x; 
     } 
     </script> 
    <center> 
     <button type="button" onclick=money=Money_handler(money,bank,"add")>+1</button> 
     <button type="button" onclick=namer()>Enter username</button> 
     <button type="button" onclick=Money_handler(money,bank,"bank")>Transfer money to Bank</button> 
     <p Id="wallet">Wallet: $0</p> 
     <p Id="bank">Bank: $0</p> 
    </center> 
    </body> 
</html> 
+4

多くの構文エラーやセミコロンなどがありません。まず、ブラウザのJavaScriptコンソールを使用して、問題の多くを表示してください。あなたはまた、JSを書くために作られたテキストエディタに切り替える必要があります、それはあなたのための構文の問題を強調表示されます。 –

+1

ブラウザのエラーコンソールを見てください。コードに複数の構文エラーがあります。 – David

+0

'var Money_handler(money、bank、op){' ... '}'は無効です。 [ブラウザコンソール](http://webmasters.stackexchange.com/q/8525)(「F12」を押す)を使用してエラーを読んでください。 [JSHint](http://jshint.com/)を使用して、すぐにコードの問題を見つけてください。 – Xufox

答えて

0

function Money_handler(money,bank,op){ 

EDIT: あなたが行の残りの部分を忘れてお金を更新:

.innerHTML = "Wallet: $"+money; 

あなたは財布/銀行で3ヶ所すべてでこれを変更しなければならなかった。

+0

ああ、笑私は完全にコードの他の部分に巻き込まれている私は完全に機能の部分を追加することを忘れてしまった! – Mental

+0

もしあなたが 'var'を使いたいならば' var money_handler = function(money、bank、op){...} 'を使うこともできます。あるいは新しいラムダ関数を使うこともできます:' var money_handler =(money、bank 、op)=> {...} 'あなたの選択。 – user3685285

+0

私はこの変更を認識していました。元の問題を修正できるまで、私はそれを入れて気にしませんでした – Mental

0

これは機能するはずです。 functionキーワードの他に、onclick属性値の引用符も見逃していました。

<html> 
 
<head> 
 
    <title>Area 52</title> 
 
</head> 
 
<body> 
 
    <h1><center>Area 52</center></h1> 
 
    <p><center><p Id="name">User</p><p>Is currently logged on</p></center><p> 
 
<script> 
 
var money = 0 
 
var bank = 0 
 
var Money_handler= function(money, bank, op) { 
 
    alert("!") 
 
    if (op == "add") { 
 
    money += 1 
 
    document.getElementById('wallet').innerHTML = money; 
 
    return money; 
 
    } 
 
    if (op == "bank") { 
 
    bank = bank + money 
 
    document.getElementById('bank').innerHTML = bank; 
 
    money = 0 
 
    document.getElementById('wallet').innerHTML = money; 
 
    return money 
 
    } 
 

 
} 
 
var namer = function() { 
 
    var x = prompt("What is your name?"); 
 
    document.getElementById('name').innerHTML = x; 
 
} 
 
</script> 
 
<center> 
 
    <button type="button" onclick="Money_handler(money,bank,'add');">+1</button> 
 
    <button type="button" onclick="namer()">Enter username</button> 
 
    <button type="button" onclick="Money_handler(money,bank,'bank')">Transfer money to Bank</button> 
 
    <p Id="wallet">Wallet: $0</p> 
 
    <p Id="bank">Bank: $0</p> 
 
</center> 
 
</body> 
 
</html>

注:私は唯一の構文上の欠陥を修正しました。私はあなたが論理に取り組むべきだと思います。

関連する問題