2015-04-27 81 views
1

我設置一個計時器,到使用jQuery的一個觀點:當用戶離開頁面時,是否可以停止jQuery超時功能?

var timer, myDiv = $('#mydiv'); 
$(document).on('mousemove', function(ev) { 
    var _self = $(ev.target); 

    clearTimeout(timer); 

    if (_self.attr('id') === 'mydiv' || _self.parents('#mydiv').length) { 
     return; 
    }  

    if(!myDiv.hasClass('show')) { 
     myDiv.fadeIn(); 
    }   

    timer = setTimeout(function() { 
     myDiv.fadeOut(1000, function() { 
      myDiv.removeClass('show'); 
     }); 
    }, 1960);  
}); 

我需要在一個只有一個頁面使用此計時器的所有時間,用戶仍然存在。

當用戶離開頁面並通過另一個視圖時,是否可以使用jQuery或JavaScript來停止計時器?

這裏DEMO

+0

'myDiv.stop()'也許? – rev

+0

@AcidShout感謝您的建議,但計時器應該在用戶仍在頁面內時始終啓用 – NineCattoRules

+0

「setTimeout」和「clearTimeout」都不是jQuery的東西。他們是香草js的東西。 – Oriol

回答

1

使用clearTimeout

clearTimeout(mytimer); 
+0

已經嘗試過,但在Ajax上我有問題,它似乎不起作用 – NineCattoRules

+0

向我們展示更多代碼。 – Eun

+0

好吧,我更新了更多的代碼,我試圖合成:) – NineCattoRules

相關問題