【问题标题】:Disable timeout in javascript, where timeout already defined在已定义超时的 javascript 中禁用超时
【发布时间】:2023-03-18 12:30:01
【问题描述】:

我在 javascript 中设置了一个超时,设置为每 10 秒,这会重新加载页面的内容,我已经能够成功停止它,但是它会在最后一次,即它超时,我按下我的按钮停止它,但它会持续最后一次,直到 10 秒结束。

有没有办法在页面上取消这个预设的超时,所以一旦我点击按钮,它会立即停止超时,不管它是否设置为 10 秒。

loadTransferListTimer = setTimeout(function(){loadTransferList(reloadTime, txt, state);}, parseInt(reloadTime)*1000);

function enableSelect(value)
{
$.ajax({
    url: "ajax_requests/enableSelect.php",
    type: "POST",
    dataType: "json",
    data: {"enabled": value },
    context: document.body}).done(function() {
        if(value == "true")
        {
            window.clearTimeout('loadTransferListTimer');
            document.getElementById('enable_select').className='big-red-button';
            document.getElementById('enable_select').innerHTML='stop selected';
            var div = document.createElement("div");
            div.setAttribute('id', 'disable_select');
            div.setAttribute('class', 'big-red-button');
            div.innerHTML = 'Undo Selected';
            div.onclick = (function(){enableSelect("false");});
            $('.big-button-wrapper').append(div);
        }
        else{
            document.getElementById('enable_select').className='big-select-button';
            document.getElementById('enable_select').innerHTML='enable select';
            $('#disable_select').remove();
            document.getElementById('enable_select').onclick = (function(){enableSelect("true");});

        }
});
}

干杯

【问题讨论】:

  • 请出示您的代码。
  • window.clearTimeout(loadTransferListTimer); 没有引号,也许
  • 非常感谢,我认为这很愚蠢 :) 删除了引号,现在可以使用了。

标签: javascript jquery timeout


【解决方案1】:

要清除它使用

if(loadTransferListTimer )
clearTimeout(loadTransferListTimer );

【讨论】:

    【解决方案2】:

    请尝试将loadTransferListTimer 定义为variable 并在没有单个的情况下将其清除

    引用window.clearTimeout(loadTransferListTimer);

    var loadTransferListTimer = setTimeout(function(){loadTransferList(reloadTime, txt, state);}, parseInt(reloadTime)*1000);
    
    function enableSelect(value)
    {
    $.ajax({
        url: "ajax_requests/enableSelect.php",
        type: "POST",
        dataType: "json",
        data: {"enabled": value },
        context: document.body}).done(function() {
            if(value == "true")
            {
                window.clearTimeout(loadTransferListTimer);            
                document.getElementById('enable_select').className='big-red-button';
                document.getElementById('enable_select').innerHTML='stop selected';
                var div = document.createElement("div");
                div.setAttribute('id', 'disable_select');
                div.setAttribute('class', 'big-red-button');
                div.innerHTML = 'Undo Selected';
                div.onclick = (function(){enableSelect("false");});
                $('.big-button-wrapper').append(div);
            }
            else{
                document.getElementById('enable_select').className='big-select-button';
                document.getElementById('enable_select').innerHTML='enable select';
                $('#disable_select').remove();
                document.getElementById('enable_select').onclick = (function(){enableSelect("true");});
    
            }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多