Установить Interval для AutoClick в меню - PullRequest
1 голос
/ 09 февраля 2012

У меня следующая структура ...

<div id="displaySlider">
  <div class="slideItem" id="idA">....</div>
  <div class="slideItem" id="idB">....</div>
  <div class="slideItem" id="idC">....</div>
  <div class="slideItem" id="idD">....</div>
</div>
<ul id="menuSlider">
  <li><a href="#" rel="pintor"></a></li>
  <li><a href="#" rel="pedreiro"></a></li>
  <li><a href="#" rel="marceneiro"></a></li>
  <li><a href="#" rel="gesseiro"></a></li>
</ul>

Когда страница загружается, я нажимаю на первый элемент.
$('#menuSlider li a:first').trigger('click');

Мне нужно создавать jquery для каждых X секунд, щелкать по следующему элементу и возвращаться к последнему.

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Если я правильно понимаю ваш вопрос, я полагаю, вы могли бы сделать что-то вроде этого:

var links = $('#menuSlider a');
var currentIndex = -1;

var click = function() {
    currentIndex++;

    if (links.length == currentIndex) {
        currentIndex = 0;
    }

    $(links[currentIndex]).trigger('click');
    console.log(links[currentIndex]);
};

if (links.length) {
    setInterval(click, 1000);
}
0 голосов
/ 09 февраля 2012

Спасибо! Это именно так. Я сделал небольшое изменение, чтобы остановить переход, когда мышь находится над ползунком:

var links = $('#menuSlider a');
var currentIndex = -1;  
var click = function() {
    currentIndex++;

    if (links.length == currentIndex) {
        currentIndex = 0;
    }
    $(links[currentIndex]).trigger('click');
    console.log(links[currentIndex]);
};
if (links.length) {
    interval = setInterval(click, 2000);
}
$('#wrapSlider').hover(function() {
    interval = clearInterval(interval);
}, function() {
    interval = setInterval(click, 2000);
});
...