[英]Why does this setInterval call not work?
Questions: 问题:
why when change input radio
dont work pause? 为什么在更改
input radio
不暂停工作?
why when change input radio
, run function move()
before than 2 seconds? 为什么在更改
input radio
,在2秒前运行function move()
?
This is my code : 这是我的代码:
$(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>
You do not check if the interval was added before adding another one. 您无需在添加另一个间隔之前检查间隔是否已添加。 Check before adding another one.
在添加另一个之前请检查。
function move() {
if(timer) clearInterval(timer);
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.