Javascript 停止设置间隔并重新启动
我正在使用此设置间隔函数:Javascript 停止设置间隔并重新启动,javascript,jquery,Javascript,Jquery,我正在使用此设置间隔函数: function ticker(){ setInterval(function(){ $('.slide').fadeToggle(); }, 5000); } 我想做的是,当用户使用onclick=“topbartoggle”单击div时,setInterval函数停止,如果再次单击它,setInterval函数再次开始工作: function topbartoggle(){ $('#
function ticker(){
setInterval(function(){
$('.slide').fadeToggle();
}, 5000);
}
我想做的是,当用户使用onclick=“topbartoggle”
单击div
时,setInterval
函数停止,如果再次单击它,setInterval
函数再次开始工作:
function topbartoggle(){
$('#top-bar').toggleClass('active');
$('.top-bar-box').slideToggle();
$('.top-bar-close').fadeToggle();
}
您知道如何执行此操作吗?setInterval返回一个句柄,您可以使用该句柄停止间隔,如下所示:
var myInterval = setInterval(function() { // myInterval should be global
something();
}, 5000);
function stopInterval()
{
clearInterval(myInterval);
}
<div onclick="stopInterval();anyOtherFunction();"></div> //anyOtherFunction could be any function you want.
所以你可以这样做:
var myInterval = setInterval(function() { // myInterval should be global
something();
}, 5000);
function stopInterval()
{
clearInterval(myInterval);
}
<div onclick="stopInterval();anyOtherFunction();"></div> //anyOtherFunction could be any function you want.
//任何其他函数都可以是您想要的任何函数。
setInterval返回一个可用于停止间隔的句柄,如下所示:
var myInterval = setInterval(function() { // myInterval should be global
something();
}, 5000);
function stopInterval()
{
clearInterval(myInterval);
}
<div onclick="stopInterval();anyOtherFunction();"></div> //anyOtherFunction could be any function you want.
所以你可以这样做:
var myInterval = setInterval(function() { // myInterval should be global
something();
}, 5000);
function stopInterval()
{
clearInterval(myInterval);
}
<div onclick="stopInterval();anyOtherFunction();"></div> //anyOtherFunction could be any function you want.
//任何其他函数都可以是您想要的任何函数。
由于您希望保持相同的延迟,因此保持计时器运行可能是最简单的方法:
var shouldTick = true;
var $slide = $('.slide');
setInterval(function () {
if (shouldTick) {
$slide.fadeToggle();
}
}, 5000);
function topbartoggle() {
shouldTick = !shouldTick;
$('#top-bar').toggleClass('active');
$('.top-bar-box').slideToggle();
$('.top-bar-close').fadeToggle();
}
var shouldTick=true;
变量$slide=$('.slide');
setInterval(函数(){
如果(应勾选){
$slide.fadeToggle();
}
}, 5000);
函数topbartoggle(){
shouldTick=!shouldTick;
$(“#顶栏”).toggleClass(“活动”);
$('.top bar box')。滑动切换();
$('.top bar close').fadeToggle();
}
由于您希望保持相同的延迟,因此保持计时器运行可能是最简单的方法:
var shouldTick = true;
var $slide = $('.slide');
setInterval(function () {
if (shouldTick) {
$slide.fadeToggle();
}
}, 5000);
function topbartoggle() {
shouldTick = !shouldTick;
$('#top-bar').toggleClass('active');
$('.top-bar-box').slideToggle();
$('.top-bar-close').fadeToggle();
}
var shouldTick=true;
变量$slide=$('.slide');
setInterval(函数(){
如果(应勾选){
$slide.fadeToggle();
}
}, 5000);
函数topbartoggle(){
shouldTick=!shouldTick;
$(“#顶栏”).toggleClass(“活动”);
$('.top bar box')。滑动切换();
$('.top bar close').fadeToggle();
}
要停止股票行情,请使用
清除间隔(tickerID)
要重新启动,只需调用ticker()
编辑:了解您需要切换股票代码,将其添加到切换功能:
if(tickerID != false) {
clearInterval(tickerID);
tickerID = false;
} else { ticker(); }
要停止股票行情,请使用
清除间隔(tickerID)
要重新启动,只需调用ticker()
编辑:了解您需要切换股票代码,将其添加到切换功能:
if(tickerID != false) {
clearInterval(tickerID);
tickerID = false;
} else { ticker(); }
setInterval
返回值的可能重复项是一个计时器ID,可以传递给clearInterval
以停止计时器。现在,如果你真的想暂停计时器,也就是说,让它保持延迟,如果你在恢复计时器后没有暂停它,那么这会更难。这怎么可能@minitech?这将是此问题的最佳解决方案。setInterval
返回值的可能重复项是一个计时器ID,可以传递给clearInterval
以停止计时器。现在,如果你真的想暂停计时器,也就是说,让它保持延迟,如果你在恢复计时器后没有暂停它,那么这会更难。这怎么可能@minitech?这将是解决此问题的最佳解决方案。但是使用此onclick
我将丢失已在topbartogle
函数中执行的其他操作。@codek您可以通过将onclick事件中的一个或多个函数与分开来调用它们;正如您在上面html的编辑版本中所看到的,onclick上调用了两个函数。是的,它会停止它,但单击后如何重新启动它?但是使用此onclick
我将丢失已在topbartoggle
函数中执行的其他操作。@codek您可以在onclick事件中调用一个或多个函数,方法是用;正如您在上面html的编辑版本中所看到的,onclick上调用了两个函数。是的,它会停止它,但单击它后如何重新启动它?感谢minitech,但现在,$slide。fadeToggle
在加载页面时不起作用。它只是停留在那里,不会褪色到另一个分区automatically@codek:您是否在页面中的.slide
之后包含脚本?如果没有,它需要在$(文档)中。ready(…)
。我正在将它全部包装在$(文档)中。ready(…)
但是当我用onlick=“topbartogle”
单击div时,我得到:topbartogle没有定义。
@codek:不要使用内联事件处理程序;只需使用$(“#topbartoggle”)在外部JavaScript中动态添加它代码>。(尽管如此,您也可以将函数topbartoggle()
移出就绪
)感谢minitech,但现在$slide。fadeToggle
在加载页面时不起作用。它只是停留在那里,不会褪色到另一个分区automatically@codek:您是否在页面中的.slide
之后包含脚本?如果没有,它需要在$(文档)中。ready(…)
。我正在将它全部包装在$(文档)中。ready(…)
但是当我用onlick=“topbartogle”
单击div时,我得到:topbartogle没有定义。
@codek:不要使用内联事件处理程序;只需使用$(“#topbartoggle”)在外部JavaScript中动态添加它代码>。(不过,您也可以将函数topbartogle()
移出ready
)