2015-10-01 2 views
0

Я пытаюсь создать скрипт, который работает как пошаговый слайдер с периодом кликов. Основная цель заключалась в том, чтобы сделать LABEL триггером этих кликов. Я сделал сценарий, но как заставить его работать с циклом: когда он достигает последней ЭТАПЫ, он переходит в первую очередь в цикле? Любая помощь? http://codepen.io/NeedHate/pen/ojBmXMКак сгенерировать скрипт

$('label').each(function(i, e) { 
    var delay = 1000; 
    setTimeout(function() { 
    $('label').removeClass('button-checked'); 
    $(e).trigger("click").addClass('button-checked'); 

    }, i * delay); 
}); 

ответ

1

Вы можете попробовать

function changeTo(i) { 
    setTimeout(function() { 
     $("label").removeClass('button-checked');  
     $("label:eq(" + i%4 + ")").trigger("click").addClass('button-checked'); 
     changeTo(i+1); 
    }, 1000);  
} 
changeTo(0); 

EDIT (ответ на последующий вопрос):

var loop = true; 

function changeTo(i) {  
    setTimeout(function() { 
     if (loop) { 
      $("label").removeClass('button-checked');  
      $("label:eq(" + i%4 + ")").trigger("click").addClass('button-checked'); 
      changeTo(i+1); 
     } 
    }, 1000); 
} 
changeTo(0); 

$(function() { 
    $('input[type=radio][name=sec-1]').click(function() { 
     loop = false; 
     $("label").removeClass('button-checked'); 
     $(this).prev("label").addClass('button-checked'); 
    }); 
}); 
+0

Отлично! Thanx! и еще один вопрос: если я нажму LABEL, как остановить этот скрипт? – NeedHate

+0

См. Отредактированный ответ, чтобы остановить цикл. – alepeino

+0

Отличная работа! Большое спасибо! Вы мне очень помогли! Ура! ** UPD О, и если мы не знаем, сколько элементов этикеток? ** – NeedHate

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