用javascript启动和停止/重置计时器
start and stop/reset a timer in javascript
所以我试图制作一个函数,你点击一个按钮,一个框变成红色,从300开始倒计时,然后变回绿色,我已经完成了这一切,但如果你再次点击按钮,它会越来越快地倒计时,所以我想让它停止按钮,这样你就可以再次点击它,并基本上重置它,这样你不必等待计时器,现在我有这个,但它不起作用
function alttimer(timernum){
if($(alt1but).val() == "Start") //button is start
{
$(alt1color).attr("src", "red.png");
alttimer1();
$(alt1but).val("Stop");
}
else //button is stop
{
$(alt1but).val("Start");
clearTimeout(alttimer2);
$(alt1color).attr("src", "green.png");
t1 = '300';
$('#alt1tim').attr("value", "");
}
};
var alttimer1;
alttimer1 = setTimeout("function(){
if(t1 == '0')
{
$(alt1color).attr('src', 'green.png');
name = $('#alt1t').val();
$('#alt21im').attr('value', '');
t1 = '300';
}
else
{
$('#alt1tim').attr('value', t1);
t1--;
}
};",1000);
你正在做的事情有点奇怪。我完全建议你做一件不同的事情:
var counter = 300;
var active = false;
var intervalId = -1;
function alttimer(){
if(!active) //button is start
{
$(alt1color).attr("src", "red.png");
intervalId = startTimer();
$(alt1but).val("Stop");
}
else //button is stop
{
$(alt1but).val("Start");
clearTimeout(intervalId);
counter = 300;
$(alt1color).attr("src", "green.png");
$('#alt1tim').attr("value", "");
}};
function startTimer() {
return setTimeout(function(){
if(t1 == '0')
{
$(alt1color).attr('src', 'green.png');
$('#alt21im').attr('value', '');
counter = 300;
}
else
{
counter--;
$('#alt1tim').attr('value', counter);
}
},1000);
}
试试这样的东西。我没有测试代码,但应该可以工作。
顺便说一句,您不必将函数创建为字符串。
祝好运
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如果弹出窗口关闭,Javascript停止/重置计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 设置Javascript倒计时计时器的初始值
- JavaScript图像横幅计时器HTML
- 计时器自动运行,而不是单击javascript按钮
- JavaScript倒计时计时器不会显示两次
- 如何设置此javascript倒计时计时器的样式
- 在 Node.Js 脚本中使用 Javascript 计时器在特定时间触发事件
- 如何在 JavaScript 中计算秒表/计时器
- Javascript 倒数计时器 - 客户端时间与 mySQL 时间
- 如何运行javascript并每分钟重新加载DIV容器(计时器)
- Javascript 计时器只调用一次 Code 隐藏方法
- 如何用JavaScript编写倒计时计时器
- 重置图像滑块的Javascript计时器
- 设置计时器并使用javascript/PHP进行检查
- 正在停止Javascript计时器
- 暂停倒计时计时器(JavaScript)
- 如何在 Django 模板中创建计时器 JavaScript 组件