【问题标题】:clearTimeout() doesn't work in javascriptclearTimeout() 在 JavaScript 中不起作用
【发布时间】:2021-08-14 03:41:23
【问题描述】:

我正在尝试使用单选按钮使滑块自动和手动,但是当我单击单选按钮 1 时,例如,我的时间不会重置。

例如,如果我现在在按钮 3 上,而我距离按钮 4 只有 1 秒,但我点击按钮 1,我只有 1 秒才能到达按钮 2。

这就是我尝试在 javascript 中做的事情:

var bo;
var counter = 0;
function ro(){
    if(counter==0){
        bo=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio1').checked==true){
        counter=1;
        window.clearTimeout(bo);
        bo=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio2').checked==true){
        counter=2; 
        window.clearTimeout(bo);
        bo=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio3').checked==true){
        counter=3;
        window.clearTimeout(bo);
        bo=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio4').checked==true){
        counter=4;
        window.clearTimeout(bo); 
        bo=window.setTimeout(ro, 4000);  
    }
    if(counter==4){
        counter=0;
    }
    counter++;
    document.getElementById('radio' + counter).checked=true;
}

有人告诉我,使用 jquery 可能会更容易,但我正在尝试学习 javascript,所以如果你能帮助我用 javascript 解决这个问题,那就太棒了:)

我是初学者,所以任何建议都会对我有很大帮助。提前谢谢!

【问题讨论】:

  • 为什么清空bo却分配给boss
  • 这是一个错误。但它仍然不起作用。我不知道我做错了什么。

标签: javascript html css settimeout cleartimeout


【解决方案1】:

兄弟,我看到你使用了错误的变量bo。不应该是boss吗?喜欢下面的?

var boss;
var counter = 0;
function ro(){
    if(counter==0){
        boss=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio1').checked==true){
        counter=1;
        window.clearTimeout(boss);
        boss=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio2').checked==true){
        counter=2; 
        window.clearTimeout(boss);
        boss=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio3').checked==true){
        counter=3;
        window.clearTimeout(boss);
        boss=window.setTimeout(ro, 4000);
    }
    if(document.getElementById('radio4').checked==true){
        counter=4;
        window.clearTimeout(boss); 
        boss=window.setTimeout(ro, 4000);  
    }
    if(counter==4){
        counter=0;
    }
    counter++;
    document.getElementById('radio' + counter).checked=true;
}

【讨论】:

  • 你是对的。我忘了纠正那个。但还是不行,我想
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 2010-12-27
相关资源
最近更新 更多