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);
        }
    });
  • 相关阅读:
    json基础
    css语法以及css选择器
    HTML语义化标签
    CSS插入的四种方式
    Hibernate主键生成策略及选择
    HIbernate处理数据更新丢失
    数据库的四大特性以及事务的隔离级别
    MD5加密
    redis主从复制
    redis的持久化方案
  • 原文地址:https://www.cnblogs.com/oxspirt/p/9105049.html
Copyright © 2011-2022 走看看