为什么这个 setInterval 调用不起作用?

Why does this setInterval call not work?

问题:

  1. 为什么更改时input radio不工作暂停?

  2. 为什么改变 input radio , 运行 function move() 不到 2 秒?

这是我的代码:

$(document).ready(function(){
  
  var timer;
  var which;
  var number = 0;
  
  move();
  
  $("input[type=radio]").on("change",function(){
    move();
   })
  
  $(".fa-pause").on("click",function(){
    $(this).css({color:"skyblue"});
    $(".fa-play").css({color:"red"});
    clearInterval(timer);
   })
  
  $(".fa-play").on("click",function(){
    move();
    $(this).css({color:"skyblue"});
    $(".fa-pause").css({color:"red"});
   })
  
  function move() {
    
    which = $("input[type=radio]:checked").attr("class");
    
    timer = setInterval(function(){
      
      number = parseFloat($(".number").text()) + 1;
      
      if (which == "t1") {
        $(".number").hide(750,function(){
          $(this).show(100).text(number);
          })
        }
      
      else if (which == "t2") {
        $(".number").fadeOut(750,function(){
          $(this).fadeIn(100).text(number);
          })
        }
      
      else {
        $(".number").slideUp(750,function(){
          $(this).slideDown(100).text(number);
          })
        }
      },2000)
    }
 })
            
                
ul {
  text-align: center;
  border: 1px solid skyblue;
  display: block;
  width:500px;
  height: 200px;
  margin: 0 auto;
}
li {
  display: inline-block;
}
h1 {
  display: inline;
  color: #fff;
  text-shadow: 0px 0px 5px #000;
  font-size: 50px;
}
div {
  width: 100%;
}
.x {
  width: 100%;
  height: 100px;
  margin-bottom: 20px;
}
.fa {
  margin: 0 0 10px 10px;
  cursor: pointer;
}
.fa-play {
  color: skyblue;
} 
.fa-pause {
  color: red;
}
            
 <ul>
   <div>
     <div class="x"><h1 class="number">0</h1></div>
     <li class="fa fa-pause"></li>
     <li class="fa fa-play"></li>
     </div>
   <li>
     <input type="radio" name="style" class="t1" checked>Show/hide
   </li>
   <li>
     <input type="radio" name="style" class="t2">Fadein/Fadeout
   </li>
   <li>
     <input type="radio" name="style" class="t3">SlideUp/SlideDown
   </li>
</ul>   
<link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

您在添加另一个间隔之前没有检查是否添加了间隔。在添加另一个之前检查。

function move() {
   if(timer) clearInterval(timer);
   ...
}