2017-02-15 2 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); 
    } 
    }; 

Я хочу, чтобы первый таймер обратного отсчета отсчитывал от минут, заданных в элементе div «clock», а затем после того, как он становится нулевым, начинается таймер обратного отсчета времени перерыва, который принимает значение preecide, хранящееся в элементе div «bk2».Как переключаться между двумя функциями?

Проблема, с которой я сталкиваюсь, заключается в том, что мой таймер обратного отсчета останавливается после того, как «часы» становятся «00:00», я хочу, чтобы он перезапустился со значения в «bk2», но я не могу переключаться между функцией breaktime и функцией часов ,

+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(){} 

Wich будет определять часы за пределами функции, что делает

clock(); 

возможно ....

+0

Я не могу вызвать breaktime() внутри setInterval clock() –

Смежные вопросы