2012-05-01 17 views
0

クラスのための基本的なjQueryスライダーを作っています。 5秒後に次のスライドを再生する自動再生をしたいと思っていますが、タイマーを使用していないうちに、私はそれをやるべきだと思っていません。適切な間隔を待ってから、コールバック関数をトリガし続けます。基本的なjqueryスライダーに自動再生を追加

//basic slider on click 
$('.slider>ul>li').click(function() 
{ 
    $('.slider>ul>li').removeClass('current'); 
    $(this).toggleClass('current'); 
    right=$(this).index()*745; 
    $(this).parent('ul').parent('.slider').children('div').children('ul').animate({'right': right}, 1000, 'easeOutBack'); 
}) 

//attempt to use timer plugin to auto play 
$('.slider>ul>li').timer(
{ 
     delay: 1000, 
     callback: function() 
     {alert($('.slider>ul>li.current').index()) 
      if($('.slider>ul>li.current').index()!=3) 
      { 
       $('.slider>ul>li.current').next('li').click(); 
      }else//oddly this doesn't trigger at all 
      { 
       $('.slider>ul').first().click(); 
      } 
     } 
}) 
+0

あなたのアラートは何件表示されますか? – Marc

+0

0,1,2,3を順番に – Yamiko

+0

http://ocd.classelliott.com/#は私がクラスで実装している恐ろしいウェブサイトです。 – Yamiko

答えて

0

これを試してみてください:

setInterval(function(){ 
    var i = $('.slider>ul>li.current').index(); 
    var next = (i < 3 ? i+1 : 0); 
    var items = $('.slider>ul>li'); 
    $(items[next]).click(); 
}, 5000); 

EDIT: のsetInterval変更のsetTimeoutと5秒にぶつかった時、これはループするはずです。

関連する問題