在事件期间暂停setInterval?

Zac*_*ner 0 javascript jquery

我有一个秒表功能,可以通过开始/停止按钮切换.按下停止按钮时,计时器停止,jQuery将一行插入预先加载到页面上的表中.

我在后台运行另一个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);
Run Code Online (Sandbox Code Playgroud)

这是ajax加载的HTML数据:

<table>
<tr><th>Test</th></tr>
<tr><td>Test</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我也试过在tr:last上使用append,但是只是将它附加到tr ...而不是创建一个新的tr.

TL; DR:我希望setInterval不会覆盖按下按钮时jQuery添加的字段,但似乎不能这样做,因为它被编码以更改整个表.

谢谢你的任何建议.

Tat*_*nit 6

没有内置.PauseAPI,但您可以将其停止,然后使用相同的功能启动新的间隔.

喜欢的东西clearInterval,然后重新设置它.