在jQuery中,当窗口没有聚焦时,如何让我的计数器停止?

时间:2012-04-25 22:08:11

标签: javascript jquery html

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

在我的下面的代码中,$(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);

    });

2 个答案:

答案 0 :(得分:3)

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);

    });

答案 1 :(得分:0)

试试这个:

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);

});