2014-05-16 102 views
0

我正在尝试制作一个倒计时时钟,并且每隔一秒钟倒计时,但是当用户输入一个新的秒值时,它不会重新开始,而是从之前的值继续。我怎么能改变这个?每秒倒数值更新

function clock() { 
    var $s = $(".second"), 
    s = setInterval(1000); 
    setTimeout("clock()", 1000); 
    $s.val(s).trigger("change"); 

} 
clock(); 

http://jsfiddle.net/z4LSN/3/

+0

哪里的用户输入数值,张贴一些HTML太多。 –

+1

你没有使用他们输入的值...你似乎在使用'setInterval'结果并将其填入输入中? –

+0

我使用插件jquery旋钮http://anthonyterrien.com/knob/,用户通过转动图表输入一个值 – user3637210

回答

0

也许你可以试试这个

$(document).ready(function(){ 
    $(".second").knob() 
    setUpClock(); 
     // destroy the prev clock during user input 
    $(".second").keydown(function(){ 
      tearDownClock(); 
    }); 

     //restart the clock when the user navigates away from the input 
    $(".second").blur(function(){ 
      if(!interval){ 
       setUpClock(); 
      }      
    }); 
}); 
function clock(){ 
    var secHtml = $(".second"); 
    var sec = secHtml.val(); 
    if(sec-1>=0){ 
     secHtml.val(sec-1); 
     secHtml.change(); 
    } 
    else{ 
     tearDownClock(); 
    } 

} 
function setUpClock(){ 
    interval = setInterval(clock,1000); 
} 
function tearDownClock(){ 
    window.clearInterval(interval); 
    interval=null; 
} 

这里是新完整Fiddle

+0

谢谢,但没有时钟没有启动.. – user3637210

+0

我其实下载了旋钮库并试了一下。它为我工作。 – Crystal

+0

你能设置一个小提琴什么的,所以我可以选择文件?请 – user3637210