一键两用
当我按一次按钮时,我想开始计数,当我再按一次时,我想停止计数。我知道要使用一个按钮 onclick 事件来运行两个功能,它是用“;”分开的。有什么建议吗?此代码适用于两个按钮,每个按钮用于一个功能。 提前致谢。
<form>
<input type="button" value="Start count!" onclick="doTimer();stopCount();" />
</form>
JavaScript 代码:
var c=0;
var t;
var timer_is_on=0;
function timedCount()
{
document.getElementById('txt').value=c;
c=c+1;
t=setTimeout("timedCount()",1000);
}
function doTimer()
{
if (!timer_is_on)
{
timer_is_on=1;
timedCount();
}
}
function stopCount()
{
clearTimeout(t);
timer_is_on=0;
}
When I press the button onces, I want to start count, and when I press again to stop count. I know that to work two functions with one button onclick event, it is seperate with ";". Any suggestion? This code works well with two buttons each for one function.
Thanks in advance.
<form>
<input type="button" value="Start count!" onclick="doTimer();stopCount();" />
</form>
javascript code:
var c=0;
var t;
var timer_is_on=0;
function timedCount()
{
document.getElementById('txt').value=c;
c=c+1;
t=setTimeout("timedCount()",1000);
}
function doTimer()
{
if (!timer_is_on)
{
timer_is_on=1;
timedCount();
}
}
function stopCount()
{
clearTimeout(t);
timer_is_on=0;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
像这样的事情怎么样:
还有你的 JS:
How about something like this:
And your JS:
这会立即调用一个接着另一个,这是没有意义的。
使用单个函数,检查标志的值,并执行适当的操作。
That will call one immediately after the other, which makes no sense.
Use a single function, check the value of the flag, and perform the appropriate action.
这是我未经测试的解决方案,其中包含一些技巧以供更好的衡量。
首先,我认为您可以摆脱
标签。
其次,您可能会发现为变量提供有意义的名称很有帮助,而不仅仅是
c
或t
第三,将计时器更改为布尔值:
vartimer_is_on = false ;
第四,将按钮更改为:
将您的代码替换为:
Here's my untested solution with a few tips thrown in for good measure.
First, I think you can probably get rid of the
<form>
and</form>
tags.Second, you may find it helpful to give your variables meaningful names, not just
c
ort
Third, change timer is on to a boolean:
var timer_is_on = false;
Fouth change the button to this:
<input type="button" value="Start count!" onclick="doTimer();" />
Fifth replace your code with this: