2016-01-24 86 views
0

我對這個很困惑。我正在建立一個番茄鍾,我已經運行得很好,直到1,然後停在調節器顯示屏和時鐘本身。我添加了幾行代碼,它不再停留在一個位置,它變爲零,-1等等。即使在我刪除了新行並測試它不再起作用之後。我知道這應該是相當簡單的,但我似乎無法讓它正常工作,並保持工作。任何幫助表示讚賞。遞減按鈕停在1

<div id="center"> 
    <p id="title">Pomodoro Clock</p> 
    <p id="mytimer">25</p> 

    <div class="buttons"> 
    <button class="btn btn-primary" onClick="start()"><i class="fa fa-clock-o"></i>&nbsp;&nbsp; Start &nbsp;  </button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    <button class="btn btn-warning" onClick="reset()"><i class="fa fa-clock-o"></i>&nbsp; Reset</button> 
    </div> 
</div> 

    <div id="workArrows"> 
     <h6>Session Time</h6> 
     <button class="btn btn-info arrowbtn" onClick="upWork()"> <i class="fa fa-arrow-up"></i></button> 
     <h4 class="arrownum" id="sessiontime">25</h4> 
     <button class="btn btn-info arrowbtn" onClick="downWork()"><i class="fa fa-arrow-down"></i></button> 
    </div> 

function downWork(){ 
    var lesswork = 25; //decrease time adjuster 
    var decreasetimer = 25; //decrease the clock respectively 

    if(lesswork > 1){ 
    lesswork = document.getElementById("sessiontime").innerHTML; 
    lesswork--; 
    document.getElementById("sessiontime").innerHTML= lesswork; 

    decreasetimer = document.getElementById("mytimer").innerHTML; 
    decreasetimer--; 
    document.getElementById("mytimer").innerHTML = decreasetimer; 

}else{ 
    lesswork = 1; 
    document.getElementById("sessiontime").innerHTML = lesswork; 

    decreasetimer = 1; 
    document.getElementById("mytimer").innerHTML = decreasetimer; 
    } 
} 
+0

請張貼小提琴。看起來你正在'downWork'裏面定義'lesswork'和'decreasetimer',並且因此在每次調用時都重新定義它(這與你在描述中解釋的內容相矛盾)。所以小提琴真的會有所幫助。 – mani

回答

1

變量lessworkdecreasetimer聲明爲局部變量。所以當調用函數downWork時,lessworkdecreasetimer的值將是每次25。

您需要將變量聲明爲全局變量。

var lesswork = 25; //decrease time adjuster 
var decreasetimer = 25; //decrease the clock respectively 

function downWork(){ 
    console.log(lesswork); 
    if(lesswork > 1){ 
    lesswork = document.getElementById("sessiontime").innerHTML; 
    lesswork--; 
    document.getElementById("sessiontime").innerHTML= lesswork; 

    decreasetimer = document.getElementById("mytimer").innerHTML; 
    decreasetimer--; 
    document.getElementById("mytimer").innerHTML = decreasetimer; 

}else{ 
     lesswork = 1; 
     document.getElementById("sessiontime").innerHTML = lesswork; 

      decreasetimer = 1; 
      document.getElementById("mytimer").innerHTML = decreasetimer; 
    } 
} 
+0

謝謝你的Mystika,工作。在你回答之前,我確實做了一些不同的事情,並且我終於找到了工作。我在函數中聲明瞭這些變量,而不是將一個數字稱爲「document.get ....」。 – sammyb123

1

您需要在檢查該值之前將lesswork變量設置爲等於HTML元素的值。在你檢查它是否大於1之前,你現在將它設置爲25,然後將它設置爲等於HTML元素。