Помогите исправить (движение по элементам)
Вот написал такую корявую функцию, которая ДОЛЖНА двигаться по всем элементам по очереди и добавлять к каждому класс при последующем вызове очищать все и добавить этот класс к следующему. Как бы функция это самое и делает, но как сделать задержку... иначе сразу в конец убегает :(
$(document).ready (function () { $('#viewscarousel-anounce-roller-block-1 li:first').addClass('clicked'); $('.top-block-announce-roller-block:first').addClass('checked'); var a; $('#viewscarousel-anounce-roller-block-1 li').each( function() { setInterval(function() { $('#viewscarousel-anounce-roller-block-1 li').removeClass('clicked'); /*ВОТ ТУТ НАЧИНАЮТСЯ ПРОБЛЕМЫ THIS НЕ ИЗВЕСТЕН*/ $(this).toggleClass('clicked'); if($(this).hasClass('clicked')) { var id = $(this).attr('jcarouselindex'); var doc = $('.top-block-announce-roller-block').each( function() { $(this).removeClass('checked'); var fid = $(this).attr('identify'); if(fid == id) { $(this).addClass('checked'); } } ); } },4000) }) }); Помогите :) а то я не справлюсь без Вашей помощи :) |
Попробуйте сохранить ссылку this в переменной до вызова setInterval
var obj = this; а внутри функции, которая вызывается через setInterval, используйте вместо this переменную obj |
да делал я так, все ровно он undefined
|
Перед интервалом
window.obj = this; |
почему-то задержки все равно нет после каждого перемещения по объектам. Задержка срабатывает изначально 4сек, а потом очень быстро оказывается на последнем объекте.
$(document).ready (function () { $('#viewscarousel-anounce-roller-block-1 li:first').addClass('clicked'); $('.top-block-announce-roller-block:first').addClass('checked'); var a; $('#viewscarousel-anounce-roller-block-1 li').each( function() { window.obj = this; setInterval(function() { $('#viewscarousel-anounce-roller-block-1 li').removeClass('clicked'); $(obj).toggleClass('clicked'); if($(obj).hasClass('clicked')) { var id = $(obj).attr('jcarouselindex'); var doc = $('.top-block-announce-roller-block').each( function() { $(this).removeClass('checked'); var fid = $(this).attr('identify'); if(fid == id) { $(this).addClass('checked'); } } ); } },4000) }) }); |
Никто не поможет, может быть без each как-то можно сделать?
|
Часовой пояс GMT +3, время: 15:53. |