2012-07-15 174 views
0

我有一個秒錶功能,可以通過開始/停止按鈕進行切換。當按下停止按鈕時,計時器停止,jQuery將一行插入預先加載到頁面上的表中。在事件期間暫停setInterval?

我有另一個jQuery腳本在後臺運行,不斷更新該表,以保持新的數據。它本質上是一個計時器。

但是,我遇到的問題是,當用戶按下停止按鈕時,setInterval加載繼續運行,導致添加的jquery字段消失。

我試着添加一個變量來檢查停止按鈕是否被按下,如果是這樣,停止事件......但由於它已經加載到DOM中,它似乎沒有工作。下面是當前的代碼:

  $.ajax({ 
       url: 'getData.php', 
       success: function(data) { 
        $("#timesheet").html(data); 
       } 
      }); 

      var refreshId = setInterval(function() { 
       $.ajax({ 
        url: 'getData.php?randval='+ Math.random(), 
        success: function(data) { 
         $("#timesheet").html(data); 
        } 
       }); 
      }, 9000); 

這裏的HTML數據的Ajax是加載:

<table> 
<tr><th>Test</th></tr> 
<tr><td>Test</td></tr> 
</table> 

我一直在使用附加在TR上也試過:最後,但只是將其追加到TR .. 。而不是創造一個新的tr。

TL; DR:我希望setInterval不會覆蓋jQuery在按下按鈕時添加的字段,但似乎無法做到這一點,因爲它被編碼以更改整個表格。

感謝您的任何建議。

回答

2

ClearInterval explained

$('#button').click(function() 
{ 
    clearInterval(refreshId); 
}); 
+2

你好,howz它會':)'+1你們了 - 只是只爲你提到的分享w3schools鏈接=> http://w3fools.com/ - 我有一個笑柄在那上面;當有人與我分享這個 - w3school(不是一個官方的w3c網站)沒有任何關係w3c':P' – 2012-07-16 00:00:14

+0

我從多個來源讀取交叉檢查我學到的東西。 w3school曾經是最後的地方[對我不友好]。我不會發布錯誤信息的鏈接。感謝您使用該鏈接給我啓發 – codingbiz 2012-07-16 00:08:04

+0

不用擔心':)'很高興爲此分享,neah鏈接很好只是一個想法:分享w3school的故事 – 2012-07-16 00:09:24

6

API沒有內置的.Pause API,但可以停止它,然後用相同的函數啓動一個新的時間間隔。

clearInterval之類的東西,然後再次設置它。

1
var MyApp ={ 
animationID: null, 
speed : 200, 
setAnimation:function(state){ 
     var obj=this; 
     if(state)obj.animationID=setInterval(function() { 
      //your code 
      },obj.speed); 
     else { 
      clearInterval(obj.animationID); 
      } 
     } 
} 

開始

MyApp.setAnimation(true); 

停止

MyApp.setAnimation(false);