2017-02-15 59 views
0
var k = 0, 
    m = 0, 
    s = 59, 
    c = 1; 
//var session=false; 
var arr; 
var tick; 

function breaktime() { 
    clearInterval(tick); 
    k = parseInt(document.getElementById('bk2').innerHTML); 
    m = k; 
    s = 59; 
    if (c < 0) 
    c = 1; 
    c--; 
    if (c >= 0) { 
    tick = setInterval(function() { 
     if (m >= 0) { //k--; 
     //m=k; 

     if (s >= 10 && m >= 0) { 

      document.getElementById('clock').innerHTML = m + ":" + s; 
      s--; 

     } else if (s >= 0 && m >= 0) { 

      document.getElementById('clock').innerHTML = m + ":" + "0" + s; 
      s--; 
     } else //if(s<=0) 
     { 
      m--; 
      s = 59; 
     } 
     //else 

     //document.getElementById('clock').innerHTML=m+":"+"0"+s; 
     } else { 
     document.getElementById('clock').innerHTML = "00:00"; 
     clock(); 
     } 
    }, 1000); 
    } 
} 
document.onclick = 
    function clock() { 
    clearInterval(tick); 
    k = (document.getElementById('clock').innerHTML).toString(); 
    arr = k.split(":"); 
    m = parseInt(arr[0]); 
    s = parseInt(arr[1]); 
    if (s >= 10) 
     document.getElementById('clock').innerHTML = m + ":" + s; 
    else 
     document.getElementById('clock').innerHTML = m + ":" + "0" + s; 
    if (c < 0) 
     c = 1; 
    c--; 
    if (c >= 0) { 
     tick = setInterval(function() { 
     if (m >= 0) { //k--; 
      //m=k; 

      if (s >= 10 && m >= 0) { 

      document.getElementById('clock').innerHTML = m + ":" + s; 
      s--; 

      } else if (s >= 0 && m >= 0) { 

      document.getElementById('clock').innerHTML = m + ":" + "0" + s; 
      s--; 
      } else //if(s<=0) 
      { 
      m--; 
      s = 59; 
      } 
      //else 

      //document.getElementById('clock').innerHTML=m+":"+"0"+s; 
     } else { 
      document.getElementById('clock').innerHTML = "00:00"; 
      breaktime(); 
     } 
     }, 1000); 
    } 
    }; 

我想第一個倒數計時器從「clock」div元素中預先計算的分鐘數開始計算,然後在它變爲零後,breaktime倒數計時器開始執行存儲在「bk2」div元素中的預取值。如何在兩個功能之間切換?

我面臨的問題是,我的倒數計時器在「時鐘」變爲「00:00」後停止,我希望它從「bk2」中的值重新啓動,但我無法在休眠時間功能和時鐘功能之間切換。

+0

看一看*命名匿名函數*。你的時鐘功能是一個。 –

+0

你可以讓jsfiddle? –

回答

0
document.onclick= 
function clock(){ 
    console.log(clock);//works 
    console.log(document.onclick);//works 
}; 
console.log(clock);//WORKS NOT 
console.log(document.onclick);//works 

你的時鐘功能是名爲匿名函數。它使得匿名函數可以進行遞歸。要訪問它,你必須使用

document.onclick(); 

但這是相當不好的風格。或者你做:

clock = document.onclick=function(){} 

至極將定義時鐘功能之外,使得

clock(); 

可能....

+0

我無法在clock()的setInterval內調用breaktime() –