用户单击自动滚动脚本时清除setInterval

时间:2011-10-17 08:56:07

标签: jquery slider setinterval clearinterval

我正在使用自动滚动脚本,我正在使用jquery中的一个函数移动到菜单上的clicked元素。我正在使用setInterval单击菜单上的每个项目。直到现在一切正常。但问题是当我需要停止setInterval时,我的意思是,如果用户单击其中一个元素,则停止setInterval。

我有两个问题或问题 yous

  1. 这是进行自动滚动的正确方法吗?
  2. 如果不是,如果你给我一点线索,我真的很感激。如果是正确的方法,如何知道点击事件是由用户还是脚本触发的?
  3. 好。谢谢阅读。我正在使用的代码是下一个,正如我所说的那样,可以正常运行滑块。非常感谢。正如旁注:对于客户请愿,我不能使用jquery插件来创建滑块,所以我必须手动完成。

    $('.slider-controls a').live('click',function(e){
                moveSlider($(this).attr('href'),e);
    
                return false;
            });
    
            function moveSlider(toDiv,elem){
                var nextPos = $(toDiv).position().top;
                $('.slider-total').animate({
                    top: -nextPos
                }, 700);
    
                $('.slider-total div').removeClass('activo');
                $(toDiv).addClass('activo');
            }
    
            var autoSlider = setInterval(function(){
                var slideNext;
    
                if ( !($('.slider-total .activo').next().attr('id')) ){
                    slideNext = '#' + $('.slider-total .post:first').attr('id');
                } else {
                    slideNext = '#' + $('.slider-total .activo').next().attr('id');
                }
    
                $('a[href='+slideNext+']').click();
            },4000);
    

1 个答案:

答案 0 :(得分:2)

您可以通过调用clearInterval()传递从setInterval()函数返回的间隔的id来清除间隔。在你的情况下,它将是:

clearInterval(autoSlider);