我有一个元素,我希望每5秒钟“单击”一个元素,执行某项操作,然后在5秒钟后再次单击它,执行某项操作,等等。

所以我使用了setTimeout,它完成了5秒钟的工作:
(在此处找到示例:How to hide a div after some time period?

我在这里找到了jQuery事件.trigger:JQuery automatic click after 4 sec

我尝试使用'for'使其循环,但在头5秒钟后发生了.click事件,然后一次又一次使用.click事件而没有5秒钟的暂停:http://jsfiddle.net/WTJgt/417/

总的来说,我建立了我的第一个jQuery旋转器:)!

使用左右按钮-我希望它在x秒后通过单击“不单击”来移动幻灯片。

这是“下一个”元素按钮的.click事件代码:

// variables
var rotCounter = 0;
var moveInPixles = 0;
var nunSlides = 4; // Enter the number of slides

$(".r-arrow").click(function(){

    moveInPixles = ( rotCounter + 1) * 746 * -1;
    moveInPixles += 'px';

    $(".rotator-container").css('margin-left', moveInPixles);

    rotCounter++;

    $(".dot").css('background-color', 'white');
    $(".dot:eq("+rotCounter+")").css('background-color', 'yellow');

    if (rotCounter == nunSlides) {
        rotCounter = 0;
        $(".rotator-container").css('margin-left', 0);
        $(".dot").css('background-color', 'white');
        $(".dot:eq("+rotCounter+")").css('background-color', 'yellow');
    }

});

最佳答案

setInterval(function () {
    $(".r-arrow").click();
}, 5000);


编辑:

使用setIntervalclearInterval,以便您可以重置按钮单击的间隔。您的代码需要重构,因为您不能真正按原样使用它。

var intervalId;
var rotCounter = 0;
var moveInPixles = 0;
var nunSlides = 4; // Enter the number of slides

autoRotate();

function autoRotate() {

    intervalId = window.setInterval(function () {
        rotateStuff();
    }, 5000);
}

function rotateStuff() {

    moveInPixles = (rotCounter + 1) * 746 * -1;
    moveInPixles += 'px';

    $(".rotator-container").css('margin-left', moveInPixles);

    rotCounter++;

    $(".dot").css('background-color', 'white');
    $(".dot:eq(" + rotCounter + ")").css('background-color', 'yellow');

    if (rotCounter == nunSlides) {
        rotCounter = 0;
        $(".rotator-container").css('margin-left', 0);
        $(".dot").css('background-color', 'white');
        $(".dot:eq(" + rotCounter + ")").css('background-color', 'yellow');
    }
}

$('.r-arrow').on('click', function () {

    window.clearInterval(intervalId);
    rotateStuff();
    autoRotate();
});

10-02 16:02