间隔并不总是被清除

时间:2015-03-24 17:50:18

标签: javascript jquery html twitter-bootstrap

我有一点时间清理一个非常简单的间隔。有时它有效,有时它不起作用。

当我第一次通过以下方式启动Bootstrap模式时,我设置了间隔:

$('#myModal').on('shown.bs.modal', function (e) {
        getParticipants();

        getParticipantsInt = setInterval(getParticipants, 15000);
    });

然后我尝试清除用户确认(通过另一个模态)他们想要删除用户的时间间隔:

$("#deleteBtn").click(function() {
            clearInterval( getParticipantsInt );  
            $(parent).closest('tr').remove(); // Remove the row
            test.dropUser(userId)
            .success(function(response){

                    $('#hangupPartModal').modal('hide');
                    setTimeout( function()
                    { 
                        getParticipantsInt = setInterval(getMtgParticipants, 15000);
                    }, 5000);
            });

        });

我想要的行为是,只要显示模态,就调用该方法,然后设置一个间隔,每隔15秒调用一次该方法。

当我们删除用户时,取消间隔并基本等待另外20秒重新启动它。

问题是,有时它会在20秒之前被调用。另外,在删除用户之前,我有时可以连续2或3次看到getParticipants()方法。

我在这里缺少什么?设置/清除间隔应该很容易。

1 个答案:

答案 0 :(得分:2)

$('#myModal').on('shown.bs.modal', function (e) {
        getParticipants();
        clearInterval(getParticipantsint);

        getParticipantsInt = setInterval(getParticipants, 15000);
    });

我假设getParticipantsInt是全局的。如果这是真的,那么问题很可能是您有多个间隔并且只清除其中一个。