Не происходит сброс таймера при вызове clearTimeout

214
19 сентября 2017, 09:56

Проблема такая, не происходит сброс таймера при повторном вызове функции msg().

function msg(a,b) {
    $("div").remove(".message");
    $("body").append('<div class="message"><div class="message_head '+a+'"></div><span>'+b+'</span><div class="close"></div></div>');
    clearTimeout(timerId);
    var timerId = setTimeout(function() {$("div").remove(".message");},5000);
}
Answer 1

Переменная timerId должна быть видна другим вызовам функции msg. Проще всего будет определить переменную на предыдущем уровне вложенности.

var timerId = 0;
function msg(a,b) {
  // тут ваш код
  clearTimeout(timerId);
  timerId = setTimeout(function() {
      // ваш код
  }, 5000);
}
READ ALSO
Как сделать модальное окно на vue?

Как сделать модальное окно на vue?

Как сделать универсальное модальное окно на vueНо так что бы это была одна компонанта окна на страницы, а остальные компоненты , возможно не связанные...

227
Найти все теги с изображениями (правило background-image или тег img+src) и собрать их в массив

Найти все теги с изображениями (правило background-image или тег img+src) и собрать их в массив

Господа, данный скрипт, определяет есть ли на странице теги с правилом css "background-image" и тег "img" с атрибутом "src" для определения их значения

349