2017-12-09 4 views
0

割り当てのためにストップウォッチを作成しようとしています。JSがコールバック関数内で++を使用して変数を追加できない

最初は、私はこのように

handleClickLap: function(){ 
    $('#lap').click(function(event){ 
    if (Stopwatch.isRunning) { 
     let lapCounter = 0; 
     lapCounter = lapCounter + 1; 
     console.log(lapCounter); 
    }) 

を私の膝の機能を構築し、それは完全に働いていました。 (機能:

は、私はすべての私の問題があり、ここで

window.onload = function(){ 
    AppController.handleClickStart(); 
    AppController.handleClickStopReset(); 
    AppController.handleClickLap(); 
}; 

機能、ラップを呼び出し、この

lap: function(){ 
    if (Stopwatch.isRunning) { 
    let lapCounter = 0; 
    lapCounter ++; 
    console.log(lapCounter); 
    } 
    } 


    handleClickLap: function(){ 
$('#lap').click(function(event){ 
    Stopwatch.lap(); 

}) 

ように私のコードを書き換える必要があった後、慎重に割り当てを読みます)実行しないでくださいlapCounter ++;カウンタを更新することもなく、私は++ lapcounterを試してみました。

私は間違っていますか?

+6

たぶん、 '' ++あなたは再宣言している変数の前の行理由: 'lapCounter = 0を聞かせ;'? – alfasin

+0

元のコードは完全に機能しましたか?私はそれが常に '1'を記録すると思う... – emil

+0

@alfasinあなたはとても正しいです、私は本当に疲れています。 – Marco

答えて

2

ああ、いいえ、コメントを読んでください。それはほぼ確実にhehです。 @alfasinへのクレジット(彼が答えを出すなら緑色のチェックを与えるように)。機能の外側でラップカウントを保持する。

{~/Desktop}$ cat test.js 
var obj = { 
    lapCount: 0, 
    addLap: function() { 
    this.lapCount++; 
    console.log(this.lapCount); 
    } 
} 
obj.addLap() 
obj.addLap() 
    {~/Desktop}$ node test.js 
1 
2 
+0

いいえ、スペースがなくても更新されません。 – Marco

+0

増分/減分演算子はスペースで動作します。 – vibhor1997a

0

AppControllerとStopwatchに関する情報を提供してくれなかったので、あなたのコードを微調整しました。お役に立てれば。

$(document).ready(() => { 
 
    function lap(){ 
 
    \t \t Stopwatch = { 
 
     isRunning \t : true 
 
     } 
 
     if (Stopwatch.isRunning) { 
 
     let lapCounter = 0; 
 
     lapCounter ++; 
 
     console.log(lapCounter); 
 
     } 
 
    } 
 

 
    $('#lap').click(function(event){ 
 
     \t \t lap(); 
 
    }) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="lap"> 
 
lap 
 
</div>

関連する問題