一键两用

发布于 2025-01-03 21:50:17 字数 577 浏览 0 评论 0原文

当我按一次按钮时,我想开始计数,当我再按一次时,我想停止计数。我知道要使用一个按钮 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

遥远的她 2025-01-10 21:50:17

像这样的事情怎么样:

onclick="handleClick();"

还有你的 JS:

function handleClick() {
  if (timer_is_on) {
    timer_is_on = false;
    clearTimeout(t);
  } else {
    timer_is_on = true;
    timedCount();
  }
}

How about something like this:

onclick="handleClick();"

And your JS:

function handleClick() {
  if (timer_is_on) {
    timer_is_on = false;
    clearTimeout(t);
  } else {
    timer_is_on = true;
    timedCount();
  }
}
御守 2025-01-10 21:50:17

这会立即调用一个接着另一个,这是没有意义的。

使用单个函数,检查标志的值,并执行适当的操作。

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.

上课铃就是安魂曲 2025-01-10 21:50:17

这是我未经测试的解决方案,其中包含一些技巧以供更好的衡量。

首先,我认为您可以摆脱

标签。

其次,您可能会发现为变量提供有意义的名称很有帮助,而不仅仅是 ct

第三,将计时器更改为布尔值:vartimer_is_on = false ;

第四,将按钮更改为:

将您的代码替换为:

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;

  }

}

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 or t

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:

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;

  }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文