停止/启动一个自我回复的函数
我有这样的代码:
function functionName(){
// blablabla
// dosomething
setTimeout(functionName, 5000);
}
好吧,如果用户按下一个按钮,该功能就会停止回复自己,我想做到这一点...... 这样代码就变成了
function functionName(){
// blablabla
// dosomething
}
,当他再次按下按钮时,它会再次启动...
function functionName(){
// blablabla
// dosomething
setTimeout(functionName, 5000);
}
我该如何做到这一点(使用jquery)?
问候
I have this code:
function functionName(){
// blablabla
// dosomething
setTimeout(functionName, 5000);
}
Well i want to make it if a user presses a button that the function stops replying itself...
So that the code becomes
function functionName(){
// blablabla
// dosomething
}
and when he presses a button again that it starts again...
function functionName(){
// blablabla
// dosomething
setTimeout(functionName, 5000);
}
How can i do that (with jquery) ?
Greetings
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
setTimeout
返回一个访问 ID。该 id 可用于调用clearTimeout()
来停止当前超时,从而结束“功能循环”;this
将引用像这样调用的window
对象。使用您自己的命名空间来存储 id 可能是一个更好的主意。setTimeout
returns an access-id. That id can be used to callclearTimeout()
which stops the current timeout and therefore ends your "functional-loop";this
would refer thewindow
object called just like that. Probably a better idea to use your own namespace to store the id.它非常简单,您可以使用 JQuery 中的toggle() 并向其传递两个方法。一个启动函数,另一个停止超时。
Its pretty simple you can use toggle() from JQuery and pass it two methods. One that starts the function and the other that stops the timeout.
要停止计时器,您可以使用
clearTimeout
。至于运行函数的逻辑,您只需检查单击了哪个按钮即可。
我不是 100% 清楚你在寻找什么,所以这至少会回答你关于如何停止计时器的问题。
To stop the timer you can use
clearTimeout
.As for the logic to run a function you can just check to see which button was clicked.
I wasn't 100% clear on what you were looking for so this will at least answer your question as to how to stop a timer.
这是设置切换函数以将 setTimeout 操作从打开切换到关闭的一种方法:
这是一个有效的小提琴:http: //jsfiddle.net/redler/XKTW9/
Here's one way to set up a toggling function to alternate the setTimeout action from on to off:
Here's a working fiddle: http://jsfiddle.net/redler/XKTW9/