2016-05-01 15 views
-1

私はこのプロジェクトのためのグローバルなポイントバンクを作るしようとしている、と私は私が作った必要なものの基本的なプロトタイプを取得しようとしてきました。なぜこのJavaScriptコードがうまくいかないのか、どうすれば修正できるのか理解してもらえますか?

私は変数を保存することができますどのように質問をしてきた、と私はOKだった1つの答えを得た、しかし、動作するようには思えませんでした、と私はお願いした場合、それはおそらく良いだろう一人の人のコメントで話す時間をたくさん費やす代わりに、新しい質問。

私の問題は、私はボタンを押すと、それは更新されないということです。

コード:

<!DOCTYPE HTML> 
<html> 
    <head> 
     <title>Javascript variable testing</title> 
    </head> 
    <body> 
     <script type="tex/javascript"> 
var clicks = 500000; 

function onClick() { 
    clicks += 1; 
    localStorage.setItem('clicks', clicks); // update the value 
    document.getElementById("clicks").innerHTML = clicks; 

    localStorage.setItem('clicks', clicks); // set the value to localStorage 
}; 

window.onload = function() { 
    clicks = localStorage.getItem('clicks'); // get the value from localStorage 
}; 
     </script> 
     <button type="button" onclick="onClick()">Click this bit</button> 
      <p>Clicks: <a id="clicks">500000</a> 
      </p> 
    </body> 
</html> 

変数が同じままので、誰もが自分のコードを作ることができる場合も、でも別のコンピュータを使用している人々のために、それは非常に高く評価されるだろう。

+0

によってyoiurスクリプトタグを取り付けタイプ。また、もしあなたがクリック –

+0

内部をのlocalStorageに値を設定しました。私は少しjavascriptに新しいので、私はそれを行う方法がわからない、あなたはどうか説明することができますか? –

+0

ああの数とDOM要素を更新する必要がありますwindow.onload二回 – Billybobof

答えて

1

あなたはスクリプトタイプでスペルミス。あなたのコメントにReffering <script type="text/javascript">

、私はこの方法でそれを行うだろう:それを修正し

<script type="text/javascript"> 
    var clicks; // variable initialization 

    function onClick() { 
     clicks = +clicks + 1; // + operator casts value to number 
     document.getElementById("clicks").innerHTML = clicks; 
     localStorage.setItem('clicks', clicks); // set the value to localStorage 
    }; 

    window.onload = function() { 
     clicks = localStorage.getItem('clicks') || 500000; // get the value from localStorage, otherwise (if is null) set 500000 clicks 
     document.getElementById("clicks").innerHTML = clicks; 
    }; 
</script> 
+0

乾杯ですが、値に1を加えるのではなく、数字の最後に「1」を付けるだけで、リフレッシュしても同じままにはなりません。 – Billybobof

+0

'クリック数は'数値にキャストする必要がありました。私は自分の答えを更新しました。 –

+0

感謝します!しかし、私は尋ねなければならない、価値は同じコンピュータ間で同じに留まるのだろうか? – Billybobof

0

あなたはトンを忘れてしまった、

<script type="text/javascript"> 

が、その後動作しているようです。

0
  1. tex/javascriptからtext/javascriptに変更してください。
  2. あなたは(そうでなければ、文字列です)のlocalStorageから値をparseInt()する必要があります。コードで
<!DOCTYPE HTML> 
<html> 

    <head> 
    <title>Javascript variable testing</title> 

    <script type="text/javascript"> 
     var clicks; 

     function onClick() { 
     clicks += 1; 
     localStorage.setItem('clicks', clicks); // update the value 
     document.getElementById('clicks').innerHTML = clicks; 
     } 

     window.onload = function() { 
     clicks = parseInt(localStorage.getItem('clicks')) || 500000; // get the value from localStorage and parse it to int 
     document.getElementById('clicks').innerHTML = clicks; 
     }; 

    </script> 
    </head> 

    <body> 
    <button type="button" onclick="onClick()">Click this bit</button> 
    <p>Clicks: <a id="clicks">500000</a> 
    </p> 
    </body> 

</html> 

JSFiddle

+0

私はそれを試みたが、私がボタンを押すとすぐに... "クリック数:5.000001111111111e + 24" – Billybobof

+0

更新されました。やってみよう –

0

小さなミスそうでない場合はすべてが正常である

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Javascript variable testing</title> 
</head> 
<body> 

<script type="text/javascript"> // Small misspelled 
var clicks = 500000; 

function onClick() { 
    clicks += 1; 
    localStorage.setItem('clicks', clicks); // update the value 
    document.getElementById("clicks").innerHTML = clicks; 

    localStorage.setItem('clicks', clicks); // set the value to localStorage 
} // Removed semicolon you added by mistake 

window.onload = function() { 
    clicks = localStorage.getItem('clicks'); // get the value from localStorage 
}; 
</script> 

<button type="button" onclick="onClick()">Click this bit</button> 
<p>Clicks: <a id="clicks">500000</a></p> 

</body> 
</html> 
2

あなたはスクリプトのタイプミスがあり、この

<script type="text/javascript"> // Small misspelled 
var clicks = 500000; 

function onClick() { 
    clicks += 1; 
    localStorage.setItem('clicks', clicks); // update the value 
    document.getElementById("clicks").innerHTML = clicks; 

    localStorage.setItem('clicks', clicks); // set the value to localStorage 
} // Removed semicolon you added by mistake 

window.onload = function() { 
    clicks = localStorage.getItem('clicks'); // get the value from localStorage 
}; 
</script> 
関連する問題