1

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

我有两个问题或疑问要问

  1. 这是进行自动滚动的正确方法吗?
  2. 如果不是,如果您能给我一点线索,我将不胜感激。如果是正确的方法,如何知道点击事件是由用户触发还是由脚本触发?

出色地。谢谢阅读。我正在使用的代码是下一个,正如我所说,它可以正常工作以循环滑块。多谢。顺便说一句:对于客户请愿,我不能使用 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);
4

1 回答 1

2

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

clearInterval(autoSlider);
于 2011-10-17T09:05:54.277 回答