我有一个元素,我希望每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);
编辑:
使用
setInterval
和clearInterval
,以便您可以重置按钮单击的间隔。您的代码需要重构,因为您不能真正按原样使用它。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();
});