jquery, как запускать одно и то же событие каждые 5 секунд
Я построил простую карусель с левым и правым свитком. Теперь я хочу автоматически прокручивать каждые 5 секунд. Вот мой код:
function carousel(){
$j('#carousel_ul li:first').before($j('#carousel_ul li:last'));
$j('#right_scroll img').click(function(){
var item_width = $j('#carousel_ul li').outerWidth() + 10;
var left_indent = parseInt($j('#carousel_ul').css('left')) - item_width;
$j('#carousel_ul:not(:animated)').animate({'left' : left_indent},800, 'easeOutExpo',function(){
$j('#carousel_ul li:last').after($j('#carousel_ul li:first'));
$j('#carousel_ul').css({'left' : '-750px'});
});
});
$j('#left_scroll img').click(function(){
var item_width = $j('#carousel_ul li').outerWidth() + 10;
var left_indent = parseInt($j('#carousel_ul').css('left')) + item_width;
$j('#carousel_ul:not(:animated)').animate({'left' : left_indent},800, 'easeOutExpo',function(){
$j('#carousel_ul li:first').before($j('#carousel_ul li:last'));
$j('#carousel_ul').css({'left' : '-750px'});
});
});
}
Как мне этого добиться? Заранее спасибо:)
Mauro
2 ответа
Решение
Вы можете использовать setInterval. Посмотрите:
window.setInterval(event, 5000);
И событие функции будет
function event() {
$j("#right_scroll img").click();
}
РЕДАКТИРОВАТЬ:
Ткс @ Крис! setTimeout вызывает только один раз. Я изменил на setInterval.
Tks @bears! Теперь я передаю функцию setInterval.
var i = setInterval(carousel, 5000)
И чтобы остановить это позже:
clearInterval(i);