нечетное поведение, устанавливающее таймауты внутри функции с глобальными ссылками в javascript - PullRequest
0 голосов
/ 03 июня 2010

Вот функция и глобальные переменные:

      $note_instance = Array();
      $note_count = 0;

      function create(text){
        count = $note_count++;

        time = 5000;            

        $note_instance[count] = $notifications.notify("create", text);

        setTimeout(function(){ $note_instance[count].close() }, time);
      }

Функция просто открывает уведомление, устанавливает тайм-аут, чтобы закрыть его через 5 секунд.

так что, если я назову это

 create("Good Note 1");
 create("Good Note 2");
 create("Good Note 3");

Нота Ecah должна закрываться через 5 секунд после создания, однако всегда, и закрывается только последняя нота, в данном случае «Good Note 3».

Каждый объект заметки имеет свою собственную запись в глобальном массиве $ note_instance, поэтому время ожидания не должно перезаписываться.

Что мне здесь не хватает, ребята? Заранее спасибо

1 Ответ

2 голосов
/ 03 июня 2010

count - глобальная переменная.

Вам нужно изменить его на локальную переменную, добавив var count внутри функции.

...