jQuery/JS simulation

jQuery/JS simulation

本文关键字:simulation JS jQuery      更新时间:2023-09-26

我不是jQuery或Javascript的专家(我最近才开始使用它),所以这听起来像是一个愚蠢的问题:我有4个选项卡,所有这些都是可点击的。所以,我编写了2个函数,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秒后什么也没有发生。有什么建议吗?我想要的是像幻灯片一样在用户点击的时候停止

.delay仅用于jQuery动画。您需要使用的是setTimeoutsetInterval:

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
}
http://jsfiddle.net/mblase75/CDNXv/2/

我建议这样做:

var i = 0;
setInterval(openTab,4000);
function openTab(){
   if(i>4) i=0;
   tabss.eq(i).click();
   i++;
}