Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在if语句中调用函数-javascript_Javascript_Jquery_Function - Fatal编程技术网

如何在if语句中调用函数-javascript

如何在if语句中调用函数-javascript,javascript,jquery,function,Javascript,Jquery,Function,我有一个间隔集,当有人点击一个叫做“重置”的按钮时,我想清除/结束它。这样,开始间隔的函数是新的,可以接受新的值 如何做到这一点 这是我的密码: <div class="grid"> <div id="circle" class="center"> <div id="timer" class="fl"></div> <div class="grid"> <div class="col-1-2

我有一个间隔集,当有人点击一个叫做“重置”的按钮时,我想清除/结束它。这样,开始间隔的函数是新的,可以接受新的值

如何做到这一点

这是我的密码:

<div class="grid">
  <div id="circle" class="center">
    <div id="timer" class="fl"></div>
      <div class="grid">
        <div class="col-1-2 center">
          <div class="circleSelect">
            <select id="min" class="fm">  
              <option value="0">0 minutes</option>
              <option value="300">5 minutes</option>
              <option value="600">10 minutes</option>
              <option value="900">15 minutes</option>
              <option value="1200">20 minutes</option>
              <option value="1500">25 minutes</option>
            </select>
          </div>
        </div>
      </div>
    </div>
</div>
<div class="grid">
  <div class="col-1-3 center centerText prZ ptm">

    <div id="begin">
    <a class="btn fm" onClick="begin()">Begin Meditation</a>
    </div>

    <div id="during" class="opacity">
    <a class="btn fm black" onClick="stop()">Pause</a>
    <a class="btn fm red" onClick="resetTime()">Reset</a>
    <a class="btn fm red" onClick="finish()">Finish Test</a>
    </div>

    <div id="finish" class="centerText ptm grid opacity">
      <div id="quote" class="pbm col-1-2 center">
          <p class="centerText fm">"Do not dwell in the past, do not dream of the future, concentrate the mind on the present moment."
           <p class="fm">- Buddha</p>
          </p>
        </div>
        <a id="again" class="btn fm" onClick="again()">Meditate Again</a>

    </div>

  </div>

  <audio id="soundName" style="display: none;"></audio>
</div>
<script>

  function begin() {

    var min = parseInt($('#min').val(), 10);
    var sec = 1;
    var time = min + sec; 

    setInterval( function() {
      if (time > 0){
        --time;
      }
      else if(time == 0){
        time = -1;
        finish();
      }
    }, 1000);

    function convertTime() {
        var mins = Math.floor((min % 3600) / 60);
        var secs = (sec % 60);
        // return humanTime;

        if (mins >= 0){
        var timeTravel = setInterval( function() {
          --secs;

        if (secs == -1 && min > 0){secs = 59; --mins;}  // changes the minute 
        else if (secs == 0 && min == 0) {clearInterval(timeTravel);} // stops at 00:00


        var humanTime = (((mins < 10) ? "0" : "") + mins + ":" + ((secs < 10) ? "0" : "") + secs);
        $('#timer').html(humanTime).fadeIn(200);
        }, 1000); 
      } else {}

    }

    convertTime();

    $('#begin').fadeToggle(200);
    $('.selectStyle').fadeToggle(200);
    $('.circleSelect').fadeToggle(200);
    $('#during').delay(200).fadeToggle(400);

  }

  function stop() {

  }


  function resetTime(interval) {
    $('#during').fadeToggle(200);
    $('#begin').delay(200).fadeToggle(400);
    $('.selectStyle').fadeToggle(200);

    var interval = clearInterval(timeTravel);

    resetTime();
  }


  function finish() {


    $('#during').fadeOut(200);
    $('#circle').fadeOut(500);

    $('#finish').insertAfter('#circle').delay(1000).fadeToggle(400);
  }

  function again() {
    $('#finish').fadeOut(200);
    $('#begin').delay(200).fadeToggle(200);
    $('#circle').delay(200).fadeToggle(400);
    $('.selectStyle').fadeToggle(200);

  }


</script>

0分钟
5分钟
10分钟
15分钟
20分钟
25分钟
开始冥想
暂停
重置
完成测试

“不要沉湎于过去,不要梦想未来,将注意力集中在当下。”

-佛陀

再冥想 函数begin(){ var min=parseInt($('#min').val(),10); var-sec=1; var时间=分钟+秒; setInterval(函数(){ 如果(时间>0){ --时间; } else if(时间==0){ 时间=-1; 完成(); } }, 1000); 函数convertTime(){ var mins=数学下限((最小值%3600)/60); 风险值秒=(秒%60); //返回时间; 如果(分钟>=0){ var timeTravel=setInterval(函数(){ --秒; 如果(秒==-1&&min>0){secs=59;--mins;}//更改分钟 else如果(secs==0&&min==0){clearInterval(timeTravel);}//在00:00停止 var humanTime=((分钟<10)-“0”:“”)+mins+:“+((秒<10)-“0”:“”)+secs); $('#timer').html(humanTime).fadeIn(200); }, 1000); }else{} } 转换时间(); $('begin')。衰减切换(200); $('.selectStyle').fadeToggle(200); $('.circleSelect').fadeToggle(200); $('期间')。延迟(200)。衰减切换(400); } 函数停止(){ } 功能重置时间(间隔){ 美元("期间"),衰减切换(200),; $('begin')。延迟(200)。衰减切换(400); $('.selectStyle').fadeToggle(200); var间隔=clearInterval(时间旅行); 重置时间(); } 函数finish(){ $('期间')。淡出(200); $('圆圈')。渐弱(500); $(“#finish”).insertAfter(“#circle”).delay(1000)、fadeToggle(400); } 函数再次(){ $(#finish')。淡出(200); $('begin')。延迟(200)。衰减切换(200); $('圆圈')。延迟(200)。衰减切换(400); $('.selectStyle').fadeToggle(200); }
问题在于
timeTravel
convertTime
的本地变量,因此
timeTravel
内部的
resetTime
引用了一个不同的(在本例中,未定义)变量

将其声明移到该函数之外,以便两个函数都可以访问它,并删除这些函数中该变量的
var

<script>
var timeTravel;

function convertTime() {
    // ...
    timeTravel = setInterval( /* ... */ );
    // ...
}

function resetTime() {
    // ...
    clearInterval(timeTravel);
    // ...
}
</script>

时间旅行;
函数convertTime(){
// ...
时间旅行=设定间隔(/*…*/);
// ...
}
函数resetTime(){
// ...
clearInterval(时间旅行);
// ...
}

您已在
convertTime
函数中将
timeTravel
变量声明为本地变量,这意味着退出该函数时它将消失

begin
函数外声明变量,只需将赋值留在
convertTime
函数内即可。这样,您就可以使用
resetTime
函数中的变量来停止间隔。

timeTravel()
应该在全局范围内。

var timeTravel = '';
function convertTime() {
        if (/* code */){
            timeTravel = setInterval( function(/* code */) {
        }
}

您需要声明
var timeTravel
global,您只能在convertTime函数的范围内访问它
var timeTravel = '';
function convertTime() {
        if (/* code */){
            timeTravel = setInterval( function(/* code */) {
        }
}