Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > обход элементов jquery


Автор: lumentek 6.2.2012, 12:52
есть такой блок  

Код

<div id="tb_content"> 
         <div class="t_group" id="t1">1</div> 
         <div class="t_group" id="t2">2</div> 
         <div class="t_group" id="t3">3</div> 
 </div> 




 мне нужно по очереди каждые 5 секунд обходить все дивы с классом t_group и показывать через алерт название id текущего дива. это все беспрерыва, пологаю как-то через setInterval?
т.е. каждые 5 секунд переключаться на следущий див циклично

Автор: $дмитрий 6.2.2012, 15:18
Можно и через setInterval. Подробнее расскажи зачем это нужно?

Автор: ksnk 6.2.2012, 15:25
Код

setInterval(function(){
       if($('.t_group.active','#tb_content').removeClass('active').nextAll('.t_group').eq(0).addClass('active').length==0)
             $('.t_group:first','#tb_content').addClass('active');
       console.log($('.t_group.active','#tb_content').attr('id'));
},5000);


Из человеколюбивых соображений alert заменен на console.log. Если ОЧЕНЬ надо - можно заменить ;) 

Автор: 12345c 7.2.2012, 01:09
knsk: а где же цикличность? )
В случае с alert() лучше использовать setTimeout, потому что он не накапливает очередь ответов при задержке.
Код

var iCurrentDiv =0
    , $allDivs = $('.t_group', $('#tb_content'))
    , lenAllDivs = $allDivs.length;
function(){
    var f = arguments.callee //можно через явное имя
        , $currentDiv = $allDivs.eq(iCurrentDiv++);
    if(iCurrentDiv == lenAllDivs)
        iCurrentDiv =0;
    setTimeout(function(){
        console.log($currentDiv.attr('id')) //сообщение или alert (если нужно хуже)
        f(); //замыкание
    },5000);
}
(если нигде не ошибся)

Автор: ksnk 7.2.2012, 08:51
Цитата(12345c @  7.2.2012,  01:09 Найти цитируемый пост)
knsk: а где же цикличность? )

setInterval, конечно !  smile 
Поправил...

Добавлено через 1 минуту и 31 секунду
И ошибку тоже...

Добавлено через 2 минуты и 54 секунды
http://jsfiddle.net/uZxDk/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)