clearInteval не работает

0

Я использую setInterval и clearInterval в js, когда загрузка 1-й страницы

var timer_detail=setInterval(function page1_load(){            
......
},5000);

Когда я перехожу на вторую страницу

function page2_load(){
  clearInterval(timer_detail);
}

но таймер не останавливается, и я не знаю почему?

  • 1
    Как вы имеете в виду "вторая страница"? Загрузка совершенно новой страницы выведет весь JS, запущенный на первой странице, из области видимости.
  • 0
    clearInterval работает просто отлично, если используется правильно ... но я не уверен относительно того, что должно означать "page + 2", или в каком контексте выполняется.
Показать ещё 9 комментариев
Теги:
setinterval
clearinterval

2 ответа

1

Сделать переменную интервала глобальной заменой:

var timer_detail = ...

с

window.timer_detail = ...

Это должно исправить любые проблемы с областью, но если это не добавит предупреждения к функции page2_load чтобы гарантировать, что функция выполняется в page2_load.

function page2_load(){
    alert('page2_load');
    clearInterval(timer_detail);
}
  • 0
    хммм это все еще не работает правильно
  • 0
    @ Green Звонил ли сигнал тревоги? Я не думаю, что setInterval делает то, что вы думаете, что делает.
-1

Одна вторая страница добавляет

<body onload="page2_load()">

это выполнит вашу функцию.

пожалуйста, не то, что я также получил езду от "+" в имени функции. потому что вы не можете иметь символы в имени функции.

должен быть

function page2_load(){clearInterval(timer_detail)}
  • 0
    Интервалы не переносятся со страницы на страницу. Не уверен, почему вы взяли пробел из функции.
  • 0
    предполагая, что var timer_detail=setInterval(function page1_load(){ живет на обеих страницах, он фактически запустится в обоих случаях. Поэтому этот ответ технически действителен. Все, что вам нужно сделать, это вызвать page2_load

Ещё вопросы

Сообщество Overcoder
Наверх
Меню