如果单击按钮,我怎么能不运行代码?例如,如果未单击上一个按钮,则会触发插件中的此计时器,但是当单击该按钮时,我不想运行此计时器代码。
$.fn.run_slide.timer_each = setTimeout(function() {
$.fn.run_slide.loop_slide(object);
},o.timerEach);
此计时器代码位于此代码块中,
next.css({opacity: 0.0}).addClass('active').animate({opacity: 1.0}, o.timerTransition, function(){
current.animate({opacity: 0.0}, o.timerTransition).removeClass('active last-active');
$.fn.run_slide.timer_each = setTimeout(function() {
$.fn.run_slide.loop_slide(object);
},o.timerEach);
});
我在考虑做这样的事情,但我认为这不是正确的方法,
if(!button_previous.click)
{
$.fn.run_slide.timer_each = setTimeout(function() {
$.fn.run_slide.loop_slide(object);
},o.timerEach);
}
有什么想法吗?
感谢。
修改
在我的代码中发现了问题,这是我的解决方案:
// Check if the next button or previous button is not clicked then fade the current slide.
if(!button_previous.click) current.animate({opacity: 0.0}, o.timerTransition).removeClass('active last-active');
答案 0 :(得分:0)
您可以通过使用clearTimeout()将setTimeout()处理程序作为参数传递来停止下次执行超时。
应该是这样的
clearTimeout( $.fn.run_slide.timer_each );
但是我不确定你是否将setTimeout处理程序置于一个合适的位置。
答案 1 :(得分:0)
使用clearTimeout,如this fiddle中所示。