Пролистывание блоков по порядку
Имеется несколько блоков с информацией и управляющие кнопки.
Для каждого блока своя кнопка. При нажатии должен отображаться соответствующий блок. Вот код который у меня работает. <div class="wrapper"> <div id="info1" class="info">1</div> <div id="info2" class="info">2</div> <div id="info3" class="info">3</div> <div class="ctrl"> <a href="#info1">1</a> <a href="#info2">2</a> <a href="#info3">3</a> </div> </div>
$('div.info').hide();
$('div.info:first-child').show();
$('div.ctrl a:first-child').addClass('active');
$('div.ctrl a').click(function() {
$('div.info').hide();
$('div.ctrl a').removeClass('active');
$(this).addClass('active');
$($(this).attr('href')).show().addClass('active');
return false
});
Однако, возникла задача добавить автоматическое переключение по порядку до конца и так по кругу. Я дописал код, но он почему то не работает. Не могу понять почему.
$(function() {
$('div.info').hide();
$('div.info:first-child').show();
$('div.ctrl a:first-child').addClass('active');
$('div.ctrl a').click(function() {
$('div.info').hide();
$('div.ctrl a').removeClass('active');
$(this).addClass('active');
$($(this).attr('href')).show().addClass('active');
return false
});
setInterval(slide, 1000);
function slide() {
var links = $('div.ctrl a').size();
for(var i=1; i<=links; i++) {
if(i<3) {
alert('if');
$('div.info').hide();
$('div.ctrl a.active').removeClass('active').next().addClass('active');
$($('div.ctrl a.active').attr('href')).show().addClass('active');
}
else {
alert('else');
$('div.info').hide();
$('div.ctrl a').removeClass('active');
$('div.ctrl a:first-child').addClass('active');
$($('div.ctrl a.active').attr('href')).show().addClass('active');
}
}
}
});
Там есть строки с alert это я делал для проверки. Интересно то что с этим alert`ом все работает, но если его убрать то перестает. |
var $info = $('div.info');
var $link = $('div.ctrl a').click(function() {
var $self = $(this).addClass('active');
$self.siblings(".active").removeClass("active");
$info.hide().removeClass("active");
$($self.attr('href')).show().addClass('active');
return false;
}).first().triggerHandler("click");
function slide(){
$link = $link.next();
if ( !$link.length ) {
$link = $link.prevAll("a").first();
}
$link.triggerHandler("click");
}
setInterval(slide, 1000);
|
nikita.mmf, в вашем примере не работает автоматическое пролистывание.
|
| Часовой пояс GMT +3, время: 18:53. |