JQuery остановить автоматическую функцию и установить интервал для перезапуска - PullRequest
1 голос
/ 26 ноября 2011

Следующая функция запускает автоматическое перемещение некоторых слайдов.

function featloop(eq){
        if(eq == $('.featuredslider a').length) { return false }
        else {
            $(".featuredslider a").mouseleave();
            $('.featuredslider a:eq(' + eq + ')').mouseenter();
            var next = eq + 1;
            window.setTimeout(function(){featloop(next);}, 3000);
        }
}

Однако, если пользователь также запускает функцию ввода мышью, то эта автоматическая функция должна быть остановлена, должен быть запущен интервал, чтобы, если пользователь выполнил mouseleave (), тогда автоматическая функция снова запустилась с начала в 8000 Миз. Это возможно и как.

1 Ответ

0 голосов
/ 26 ноября 2011

Вы имеете в виду что-то вроде:

function featloop(eq,ms){
        if(eq == $('.featuredslider a').length) { return false }
        else {
            $(".featuredslider a").mouseleave();
            $('.featuredslider a:eq(' + eq + ')').mouseenter();
            var next = eq + 1;
            if (!ms){ms=3000);
            window.setTimeout(function(){featloop(next);}, 8000);
        }
}

$('$featureslider a').bind('mouseenter',function(){//or whatever your selector
    $('featureslider a).bind('mouseleave',featloop(eq,8000)); //I know this isn't the right call for eq, but I don't understand the original binding and html. so fix it properly
}) ;
...