在 jQuery 中,如何让我的计数器在窗口不在焦点上时停止

In jQuery, how can I get my counter to stop when window is not on focus?

本文关键字:焦点 窗口 我的 jQuery 计数器      更新时间:2023-09-26

我有以下代码。倒计时有效,但当窗口不在焦点上时停止计时器不起作用。另外,我想在窗口对焦时恢复倒计时。

在下面的代码中,$(document).blur() 事件不起作用,但是当我用 click() 替换模糊时,它有效。blur()和文件有问题吗?

var tm;
$(document).ready(function(){    
   function countdown(){ 
         if (seconds > 0) {
            seconds--; 
            $('#timer_div').text(seconds);
            tm = setTimeout(countdown,1000);
            }
        if (seconds<=0){ 
            $('#timer').text('Go');
            }   
        } 
        var seconds = 50;
        $('#timer').html(seconds);
        countdown();
    });
    $(document).blur(function(){
        clearTimeout(tm);
        seconds++;
        $('#timer').text(seconds);
    });
var tm;
$(document).ready(function(){    
   function countdown(){ 
         if (seconds > 0) {
            seconds--; 
            $('#timer_div').text(seconds);
            tm = setTimeout(countdown,1000);
            }
        if (seconds<=0){ 
            $('#timer').text('Go');
            }   
        } 
        var seconds = 50;
        $('#timer').html(seconds);
        countdown();
    });
    $(document).blur(function(){
        clearTimeout(tm);
        seconds++;
        $('#timer').text(seconds);
    });

试试这个:

var counter;
$(document).ready(function(){
function countdown(){ 
     if (seconds > 0) {
        seconds--; 
        $('#timer_div').text(seconds);
        counter=setTimeout(countdown,1000);
        }
    if (seconds<=0){ 
        $('#timer').text('Go');
        }   
    } 


    var seconds = 50;
    $('#timer').html(seconds);
    countdown();
});

$(document).blur(function(){
    clearTimeout(counter);
    seconds++;
    $('#timer').text(seconds);
});