带两个功能的一个按钮
问题描述:
当我按下按钮时,我想开始计数,并且当我再次按下时停止计数。我知道用一个按钮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;
}
答
下面是我未经测试的解决方案,其中包含一些提示,以便您采取措施。
首先,我认为你大概可以摆脱<form>
和</form>
标签。
其次,你可能会发现它有助于让你的变量有意义的名称,而不是仅仅c
或t
第三,改变计时器是上一个布尔值:var timer_is_on = false;
Fouth更改按钮,这样的:<input type="button" value="Start count!" onclick="doTimer();" />
第五本替换代码:
function doTimer(){
if(timer_is_on){
// Code to start the timer
// and any other code you want
timer_is_on = false;
}else{
// Code to stop the timer
// and any other code you want
timer_is_on = true;
}
}
答
怎么是这样的:
onclick="handleClick();"
而且你的JS:
function handleClick() {
if (timer_is_on) {
timer_is_on = false;
clearTimeout(t);
} else {
timer_is_on = true;
timedCount();
}
}
答
,将调用一个后立即另一方面,这没有意义。
使用单个函数,检查标志的值,并执行相应的操作。
谢谢Adjam。你帮我做出改变! – billaki 2012-02-09 18:27:40
也可以在将来缩进你的代码,它会让你的生活更轻松 – Adjam 2012-02-09 20:06:08