Автоматическое обновление с четким интервалом

#jquery #clearinterval

#jquery #clearinterval

Вопрос:

Я хочу очистить автообновление переменной с помощью события mousedown, но это не сработало.

Загрузить готовый документ

 $(document).ready(function() {
$('#posts_db').load('data/posts_db.php');
}); 
  

Начальный интервал 60 секунд

 var auto_refresh = setInterval(function(){
$('#posts_db<?php echo $id ?>').load('data/posts_db.php');
}, 60000);
  

нажмите кнопку мыши, чтобы изменить интервал на 1800 секунд (для области комментариев)

 // Comment_on Button wechselt von 60 sek auf 30 Min
$('#comment_on<?php echo $id ?>').bind('mousedown touchstart', function () {
$("#comment_on<?php echo $id ?>").stop().fadeOut("fast");
$("#comment_off<?php echo $id ?>").stop().delay(200).fadeIn("fast");
$("#element<?php echo $id ?>").stop().slideDown("slow");
clearInterval(auto_refresh);

// Intervall db load nach 1800 Sekunden während Eingabe
var auto_refresh = setInterval(
function()
{
$('#posts_db').load('data/posts_db.php');
}, 1800000);
});
  

нажмите кнопку мыши, чтобы изменить интервал обратно на 60 секунд (если пользователь решит не писать никаких комментариев)

 // Wenn Kommentar Fenster geschlossen wird Intervall wieder auf 60 Sekunden

$('#comment_off<?php echo $id ?>').bind('mousedown touchstart', function () {

$("#comment_off<?php echo $id ?>").stop().fadeOut("fast");
$("#comment_on<?php echo $id ?>").stop().delay(200).fadeIn("fast");
$("#element<?php echo $id ?>").stop().slideUp("slow");
clearInterval(auto_refresh);


// Intervall db load nach 60 Sekunden
var auto_refresh = setInterval(
function()
{

$('#posts_db').load('data/posts_db.php');
}, 60000);

}); 
  

работает, чтобы изменить значение auto_refresh на 1800 секунд, но вернуться к 60 секундам не получилось.

Комментарии:

1. Инициализируйте var auto_refresh глобально или вне функции.

Ответ №1:

Проблема в том, что вы продолжаете создавать auto_refresh в локальных областях. объявите auto_refresh глобально, а затем вместо создания локальных версий просто установите глобальное значение:

 clearInterval(auto_refresh);

auto_refresh = setInterval(
function()
{
  $('#posts_db').load('data/posts_db.php');
}, 1800000);
  

Комментарии:

1. Хорошо, почему-то это не сработало.. Я изменил его, но теперь событие наведения курсора мыши не изменило интервал