zoukankan      html  css  js  c++  java
  • How to Clear setInterval() without Knowing the ID

    Problem
    Declaring a setInterval() without keeping a reference to it (which is returned from the function call setInterval(), it returns an id number for the registered event).

    Like so:

    var interval = setInterval(function() {
        console.log('i');
    }, 1000);
    console.log(interval);

    It you can see it assigns a random number as the id for the event. Then when we clear the interval it uses that id.

     

    Simply by calling:

    clearInterval(interval);

    A Diirty Solution
    Now this is not good coding practice (for a number of reasons) but if you really need to clear that interval we can simply do a loop to find the id of the event to stop all setInterval() events that are running. I’ve done a quick jsfiddle to show you. https://jsfiddle.net/WqCws/.

    for(i=0; i<100; i++)
    {
        window.clearInterval(i);
    }

    I’m pretty sure this will also work for setTimeout() and clearTimeout();

    var $timer = $('#timer'),
        count = 0;
    
    //set the interval
    var interval = setInterval(function() {
        $timer.html(count++);
    }, 1000);
    console.log('the interval is: '+interval);
    
    //clear it
    $('button').bind('click', function(e) {
        var found;
        for(i=0; i<10000; i++)
        {
            window.clearInterval(i);
        }
    });
  • 相关阅读:
    Async和Await的用法
    Idea有关收藏的博客
    记录看到的写的好的、实用的JavaScript博客
    Linux实用指令一
    flex布局
    移动端开发常用的vue组件
    npm --save 的含义
    切换npm源为淘宝镜像
    java String Map List 转换
    mysql查看被锁住的表
  • 原文地址:https://www.cnblogs.com/oxspirt/p/9105049.html
Copyright © 2011-2022 走看看