2012-05-01 2 views
0

Im, создающий базовый слайдер 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: измененная SetTimeout к setInterval и врезались время 5с; теперь это должно быть замкнуто.

Смежные вопросы