Jquery 设置自动单击菜单的间隔

Jquery 设置自动单击菜单的间隔,jquery,click,setinterval,Jquery,Click,Setinterval,我有以下结构 <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 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')。触发器('click')


我需要每X秒创建一个jquery,单击下一项并返回到第一项的最后一项。

如果我正确理解您的问题,我想您可以这样做:

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);
}

如果我正确理解你的问题,我想你可以这样做:

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);
}
谢谢大家!! 正是这样。 我做了一个小改动,当鼠标移动到屏幕区域时,停止转换​​滑块:

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);
});
谢谢大家!! 正是这样。 我做了一个小改动,当鼠标移动到屏幕区域时,停止转换​​滑块:

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);
});

嘿,丹尼洛,既然你是新来的,我就给你一些建议。在这种情况下,请将答案标记为正确,并考虑如何在评论中改进答案。你不应该重复这样的答案,当有有效的答案时,你应该避免回答自己的问题。嘿,丹尼洛,既然你是新来的,我就给你一些提示。在这种情况下,请将答案标记为正确,并考虑如何在评论中改进答案。你不应该重复这样的答案,当有有效答案时,你应该避免回答自己的问题。