首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在清除后设置时间间隔

如何在清除后设置时间间隔
EN

Stack Overflow用户
提问于 2018-05-10 08:07:26
回答 2查看 34关注 0票数 0

我可以设置间隔,并清除点击它。我想再来一次setInterval,但不知道怎么做。我想要的是当有人点击一个图标时,setInterval应该是清晰的(最好是等待几秒钟),然后重新启动。这是我的密码

代码语言:javascript
运行
复制
jQuery(document).ready(function() {


    var timer =  setInterval(function(){
    var finding = jQuery('ul.hi-icon-wrap').find( "li.active" );
    var tabcontentActive = jQuery('div.tab-content').find( "div.active" );
    var last = jQuery('ul.hi-icon-wrap li').last();
    var nextItem =  jQuery(finding).next();
    var tabid = jQuery(nextItem).find('a').attr('id');
    if(finding.is(last)) {
     var tabid = jQuery('ul.hi-icon-wrap li:first').find('a').attr('id');   
    }
    //alert(tabid);
     jQuery(finding).removeClass('active');
     jQuery(finding).next().addClass('active');
     if(finding.is(last)) {
        jQuery('ul.hi-icon-wrap li:first').addClass('active');
    }
    jQuery(tabcontentActive).removeClass('active');
    jQuery('div.tab-content').find('div#'+tabid).addClass('active');
    }, 3000);
     $("ul.hi-icon-wrap li").click(function () {
          //alert('ok');
          clearInterval(timer); //clear interval
        timer = setInterval(timer, 300); //I am unable to restart here. 
      });

});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-10 08:11:04

setInterval/setTimeout只返回指示进程引用的数字,而不是实际调用的函数。再次调用相同的函数。

代码语言:javascript
运行
复制
var fooFunction = function(){
    var finding = jQuery('ul.hi-icon-wrap').find( "li.active" );
    var tabcontentActive = jQuery('div.tab-content').find( "div.active" );
    ...
}

jQuery(document).ready(function() {
     var timer =  setInterval(fooFunction, 3000);

     $("ul.hi-icon-wrap li").click(function () {
        clearInterval(timer); //clear interval
        timer = setInterval(fooFunction, 300); //I am unable to restart here. 
     });
});
票数 0
EN

Stack Overflow用户

发布于 2018-05-10 08:13:31

在不同的函数中添加setInterval逻辑,并在单击按钮时调用该函数。

代码语言:javascript
运行
复制
jQuery(document).ready(function() {


    var timer;
    startInterval();
    
    function startInterval(){
    timer =  setInterval(function(){
    var finding = jQuery('ul.hi-icon-wrap').find( "li.active" );
    var tabcontentActive = jQuery('div.tab-content').find( "div.active" );
    var last = jQuery('ul.hi-icon-wrap li').last();
    var nextItem =  jQuery(finding).next();
    var tabid = jQuery(nextItem).find('a').attr('id');
    if(finding.is(last)) {
     var tabid = jQuery('ul.hi-icon-wrap li:first').find('a').attr('id');   
    }
    //alert(tabid);
     jQuery(finding).removeClass('active');
     jQuery(finding).next().addClass('active');
     if(finding.is(last)) {
        jQuery('ul.hi-icon-wrap li:first').addClass('active');
    }
    jQuery(tabcontentActive).removeClass('active');
    jQuery('div.tab-content').find('div#'+tabid).addClass('active');
    }, 3000);
  }
  
  $("ul.hi-icon-wrap li").click(function () {
          //alert('ok');
          clearInterval(timer); //clear interval
        startInterval(); //I am unable to restart here. 
    });
      
});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50268338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档