Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.09.2011, 18:47
Аватар для doniv
Аспирант
Отправить личное сообщение для doniv Посмотреть профиль Найти все сообщения от doniv
 
Регистрация: 02.03.2010
Сообщений: 73

setInterval. Временное изменение интервала.
Здравствуйте. Мне нужно, чтобы по клику на определенном элементе интервал изменялся с, например, 1000 на 10000. И после следующего срабатывания возвращался опять на 1000.

Вот до этого места я пока дошел (весь лишний код убрал), а дальше никак:

var timeSlider = 2000; //Время автоматической смены слайда

function StartSlider( firstPoint, secondPoint, largePath, largeAlt){  //Функция смены слайда
...
}


$(document).ready(function(){
        $(".slider__navigation a").click(function(){
...
                    StartSlider( firstPoint, secondPoint, largePath, largeAlt); //Тут я вызываю прокрутку слайда
            return false;
        });

        setInterval(function(){
            StartSlider( firstPoint, secondPoint, largePath, largeAlt);
        }, timeSlider);
});


Никак не могу понять, как при клике на ".slider__navigation a" я могу налету менять значение timeSlider.
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2011, 19:16
Аватар для Magneto
Люмус, Емаксос Developer!
Отправить личное сообщение для Magneto Посмотреть профиль Найти все сообщения от Magneto
 
Регистрация: 06.05.2010
Сообщений: 677

var timeSlider = 2000; //Время автоматической смены слайда

//  При клике по элементу myElement утанавливаем значение таймера в 10000
myElement.addEventListener('click', function () { timeSlider = 10000 }, false);

function StartSlider( firstPoint, secondPoint, largePath, largeAlt){  //Функция смены слайда
...
}


$(document).ready(function(){
        $(".slider__navigation a").click(function(){
...
                    StartSlider( firstPoint, secondPoint, largePath, largeAlt); //Тут я вызываю прокрутку слайда
            return false;
        });

        setInterval(function(){
            StartSlider( firstPoint, secondPoint, largePath, largeAlt);
            timeSlider = 2000;  //  после первого срабатывания таймера устанавливаем значение в 2000
        }, timeSlider);
});
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2011, 23:06
Аватар для doniv
Аспирант
Отправить личное сообщение для doniv Посмотреть профиль Найти все сообщения от doniv
 
Регистрация: 02.03.2010
Сообщений: 73

Сообщение от Magneto Посмотреть сообщение
var timeSlider = 2000; //Время автоматической смены слайда

//  При клике по элементу myElement утанавливаем значение таймера в 10000
myElement.addEventListener('click', function () { timeSlider = 10000 }, false);

...

        setInterval(function(){
            StartSlider( firstPoint, secondPoint, largePath, largeAlt);
            timeSlider = 2000;  //  после первого срабатывания таймера устанавливаем значение в 2000
        }, timeSlider);
});
Спасибо. Но данный код не работает. Сначала ошибка была потому, что я не вставил вот эту конструкцию в домреди.

var sliderItem = document.getElementById('slider-navigation');
sliderItem.addEventListener('click', function () { timeSlider = 10000 }

После внесения все заработало, только время переключения таймера не изменяется по клику на элемент.
Ответить с цитированием
  #4 (permalink)  
Старый 05.09.2011, 14:44
Аватар для doniv
Аспирант
Отправить личное сообщение для doniv Посмотреть профиль Найти все сообщения от doniv
 
Регистрация: 02.03.2010
Сообщений: 73

Решил задачу по-другому.

Автопролистывание вынес в функцию (SliderSlide) за домреди.

В домреди первым делом вызываю эту функцию. А при клике на элемент делаю следующее:

$(".slider__navigation a").bind('click', function(){

        clearInterval(autoSlide); //Останавливаем слайдер на 1 минуту
        setTimeout(SliderSlide, 60000);
        ...
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменный в setinterval не видно вне него zeraid Общие вопросы Javascript 12 13.04.2011 10:29
setTimeout setInterval и др. mycoding Общие вопросы Javascript 6 28.10.2010 17:26
Как обработать изменение масштаба окна в IE8 ? v_k Events/DOM/Window 1 09.08.2010 13:35
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17