jQuery setInterval & setTimeout - PullRequest
       6

jQuery setInterval & setTimeout

0 голосов
/ 19 октября 2011

У меня небольшая проблема с моим кодом jQuery.У меня в основном есть таймер, который перебирает набор изображений, который находится на setInterval

Когда я нажимаю на правый или левый контроллер, он останавливает интервал и затухает изображения на основе кликов пользователя, а не автоматически.

$('a.right').click(function () {

    clearInterval(myInterval);
    setTimeout(function () { slideshow(); }, 9000);

    if (count < max - 1) {
        $('div.feature-image').eq(count).fadeOut('1000', function () {

            count++;
            $('div.feature-image').eq(count).fadeIn('1000');
            info++;
            $('div.img-info').html(info + ' of ' + max + ' | ');


        })

    }

Я использовал setTimeout, чтобы подождать 4 секунды, а затем продолжить цикл.Хотя я не думаю, что это самый элегантный способ сделать это, потому что Jquery не знает, чтобы остановить оператор if.Есть ли способ, которым я могу на setTimeout остановить оператор if для выполнения его функции?

1 Ответ

0 голосов
/ 19 октября 2011

Не уверен, что я полностью понял проблему, но что-то вроде этого

setTimeout(function () {
  setTimeoutTriggered = true;
  slideshow();
}, 9000);

if ( (count < max - 1) && !setTimeoutTriggered ) {
  ...
}

Конечно, вы можете дать setTimeoutTriggered более семантическое имя. И было бы лучше избегать глобальных переменных:)

В любом случае, я считаю этот плагин jQuery действительно хорошим для управления таймаутами и интервалами! http://plugins.jquery.com/project/timers

...