我有这段代码:
setInterval(function() {
$('.button2').trigger('click');
$('.button3').trigger('click');
}, 5000);
结果:
它每隔5秒同时按下.button2和.button3。我需要这样的东西 - 按5秒后按.button2,按5秒后按.button3,每按一次按钮和按下.button3之间需要延迟 - 再次按.button2(类似循环)。
任何帮助将不胜感激!
为flesk编辑:
$(document).ready(function (){
$('.goluboi a').click(function(){
var integer = $(this).attr('rel');
$('.videos .cover').animate({left:-875*(parseInt(integer)-1)}) /*----- Width of div mystuff (here 160) ------ */
$('.goluboi a').each(function(){
$(this).removeClass('active');
if($(this).hasClass('button'+integer)){
$(this).addClass('active')}
});
});
setTimeout(function() {
triggerClick('.button', 0)
}, 5000);
function triggerClick(selector, index) {
var buttons = $(selector);
var mod = index++ % buttons.length;
$(buttons[mod]).trigger('click');
setTimeout(function() {
triggerClick(selector, index);
}, 5000);
}
});
答案 0 :(得分:3)
您可以使用setTimeout
执行此操作function a() {
$('.button2').trigger('click');
setTimeout(b, 5000);
}
function b() {
$('.button3').trigger('click');
setTimeout(a, 5000);
}
setTimeout(a, 5000);
答案 1 :(得分:3)
你可以这样做:
setTimeout(function() {
triggerClick('.button2');
}, 5000);
function triggerClick(selector) {
$(selector).trigger('click');
selector = (selector == '.button2') ? '.button3' : '.button2';
setTimeout(function() {
triggerClick(selector);
}, 5000);
}
编辑:回答下面的评论:
setTimeout(function() {
triggerClick('.button', 0)
}, 5000);
function triggerClick(selector, index) {
var buttons = $(selector);
var mod = index++ % buttons.length;
$(buttons[mod]).trigger('click');
setTimeout(function() {
triggerClick(selector, index);
}, 5000);
}
适用于任意数量的按钮,只要它们都具有相同的类。无论如何,无需将它们称为“button1”,“button2”和“button3”。这就是id的用途。
<强> EDIT2:强>
如果我理解您的更新,您想要的是:
setTimeout(function() {
triggerClick('.goluboi a.button', 0)
}, 5000);
function triggerClick(selector, index) {
var buttons = $(selector);
// Your logic
var integer = $(this).attr('rel');
$('.videos .cover').animate({left:-875*(parseInt(integer)-1)})
$(buttons).removeClass('active');
var mod = index++ % buttons.length;
$(buttons[mod]).addClass('active').trigger('click');
setTimeout(function() {
triggerClick(selector, index);
}, 5000);
}
});
答案 2 :(得分:2)
丑陋但它有效。
var clickButton = false;
setInterval(function() {
if( clickButton ) {
clickButton = false;
$('.button2').trigger('click');
} else {
clickButton = true;
$('.button3').trigger('click');
}
}, 5000);
答案 3 :(得分:1)
已发布好的答案。这是另一个:
setInterval(function() {
$('.button2').trigger('click');
}, 10000);
setTimeout(function() {
setInterval(function() {
$('.button3').trigger('click');
}, 10000);
}, 5000);
立即开始第一个间隔,5秒后开始第二个间隔,最终结果是每隔10秒运行两个间隔,但偏移5秒。