2017-02-15 34 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() –