Помогите исправить (движение по элементам)
Вот написал такую корявую функцию, которая ДОЛЖНА двигаться по всем элементам по очереди и добавлять к каждому класс при последующем вызове очищать все и добавить этот класс к следующему. Как бы функция это самое и делает, но как сделать задержку... иначе сразу в конец убегает :(
$(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, время: 22:43. |