1

自動スクロールスクリプトに取り組んでいます。jqueryの関数を使用して、メニューのクリックされた要素に移動しています。そして、setIntervalを使用してメニューのすべての項目をクリックしています。今まですべてが正常に動作します。しかし、問題は、setIntervalを停止する必要がある場合に発生します。つまり、ユーザーが要素の1つをクリックした場合にsetIntervalを停止します。

私はあなたのために2つの問題または質問があります:

  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()関数から返された間隔のIDを渡して呼び出すことにより、間隔をクリアできsetInterval()ます。あなたの場合は次のようになります。

clearInterval(autoSlider);
于 2011-10-17T09:05:54.277 に答える