簡體   English   中英

如何在兩個功能之間切換?

[英]How to switch between two functions?

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元素中預定的分鍾開始計數,然后在其變為零后,開始使用間隔時間倒數計時器,該間隔取預定值存儲在“ bk2” div元素中。

我面臨的問題是我的倒數計時器在“時鍾”變為“ 00:00”后停止,我希望它從“ bk2”中的值重新啟動,但是我無法在間隔時間功能和時鍾功能之間切換。

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();

可能....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM