我不是jQuery或Javascript的专家(我最近才开始使用它),所以这可能听起来像个愚蠢的问题: 我有4个标签,所有标签都是可点击的。所以,我制作了2个函数,1个用于实际执行点击,1个仅用于“模拟”点击,因此我可以每隔5秒更改一次标签。我所做的是,将bool变量“click”设置为false,如果执行了实际点击功能,则设置为“true”,因此自动制表符切换停止。在这两个函数下面,我添加了一个像这样的while循环:
var nr = 0;
while(!klik){
tabss.eq(st % 4).click().delay(5000); //this is the "simulation"
st++;
}
现在,它会打开第一个标签,但是在5秒后没有任何反应。有什么建议?我想要的就像一个幻灯片停止,当用户点击某些内容时停止。
答案 0 :(得分:3)
.delay
仅用于jQuery动画。您需要使用的是setTimeout
或setInterval
:
var timer = setInterval(function() {
if (!klik) {
clearInterval(timer);
} else {
st %= 4;
clickontab($tabs.eq(st++));
}
}, 5000); // milliseconds
$('div.tab').click(function(e) {
e.preventDefault();
klik = false;
clickontab(this);
});
function clickontab(tab) {
// code to bring a particular tab to the front
}
答案 1 :(得分:0)
var i = 0;
setInterval(openTab,4000);
function openTab(){
if(i>4) i=0;
tabss.eq(i).click();
i++;
}