Javascript 来自用户提供的时间间隔的jQuery定时计数器

Javascript 来自用户提供的时间间隔的jQuery定时计数器,javascript,jquery,timer,Javascript,Jquery,Timer,我的最终目标是创建一个计时器,以用户提供的间隔产生声音。例如,他们在字段中输入10,然后每10秒发出一声蜂鸣音。现在,我只是在让setInterval在一个范围内显示效果方面遇到了麻烦。非常感谢您能帮助我重回正轨。谢谢 <div id="ping_div"> <p> Enter the desired interval in milliseconds to sound ping noise. <br /> <input id="pin

我的最终目标是创建一个计时器,以用户提供的间隔产生声音。例如,他们在字段中输入10,然后每10秒发出一声蜂鸣音。现在,我只是在让setInterval在一个范围内显示效果方面遇到了麻烦。非常感谢您能帮助我重回正轨。谢谢

<div id="ping_div">
  <p>
    Enter the desired interval in milliseconds to sound ping noise. <br />
    <input id="ping_val" type="text" /> <input id="set_ping" type="button" value="Submit" /><span id="ping_alert"></span>
  </p>
  <p>
<input id="go" type="button" value="Click to Start Pings"  />
<span id="progress"></span>
  </p>
</div>


____________________________


$(document).ready(function() {

  $('#set_ping').click(function() {
    interval = $('#ping_val').val();
    $('#ping_alert').text('The ping will sound every ' + interval + ' milliseconds.');
  });

  $('#go').click(function() {  
    setInterval(timer, interval); 
  });

  function timer() {
    var base = base + interval;
    $('#progress').text(base);
  }

});


输入所需的间隔(以毫秒为单位)以发出ping噪音

____________________________ $(文档).ready(函数(){ $(“#设置#ping”)。单击(函数(){ 区间=$('#ping_val').val(); $(“#ping_警报”).text('ping将每隔“+间隔+”毫秒发出一次声音'); }); $('#go')。单击(函数(){ 设置间隔(计时器、间隔); }); 函数计时器(){ var基数=基数+区间; $(“#进度”)。文本(基数); } });
您的代码按原样工作,但如果您做了一些更改,它会更加明显:

$(文档).ready(函数(){

var base=0,interval=1000;//您可以使interval自支持,而无需声明全局变量:

$("#go").click(function() {
    var interval = $("#ping_val").val();
    setInterval(function(){ 
        var progress = $("#progress");
        var html = progress.html();
        var offset = html.length > 0 ? parseInt(html) : 0;
        progress.html(offset + interval);
     }, interval); 
  });
请记住,每次单击“开始”都会启动一个新的间隔。这些间隔会相互干扰。这样更好:

var runningInterval = 0;
$("#go").click(function() {
    clearInterval(runningInterval);
    $("#progress").html("0");
    var interval = $("#ping_val").val();
    runningInterval = setInterval(function(){ 
        var progress = $("#progress");
        var html = progress.html();
        var offset = html.length > 0 ? parseInt(html) : 0;
        progress.html(offset + interval);
     }, interval); 
  });

你对哪一部分有问题?你在触发事件吗?你在检查错误吗?你在进行任何类型的调试吗?对我来说很有用。你在使用字符串,而不是数字!你应该在parseInt上使用基数。
$("#go").click(function() {
    var interval = $("#ping_val").val();
    setInterval(function(){ 
        var progress = $("#progress");
        var html = progress.html();
        var offset = html.length > 0 ? parseInt(html) : 0;
        progress.html(offset + interval);
     }, interval); 
  });
var runningInterval = 0;
$("#go").click(function() {
    clearInterval(runningInterval);
    $("#progress").html("0");
    var interval = $("#ping_val").val();
    runningInterval = setInterval(function(){ 
        var progress = $("#progress");
        var html = progress.html();
        var offset = html.length > 0 ? parseInt(html) : 0;
        progress.html(offset + interval);
     }, interval); 
  });