奇怪的行为设置在javascript中具有全局引用的函数内的超时

时间:2010-06-02 23:34:06

标签: javascript jquery global-variables settimeout

这是函数和全局变量:

      $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对象在$ note_instance全局数组中都有自己的条目,因此超时不应该自行覆盖。

我在这里缺少什么人?提前致谢

1 个答案:

答案 0 :(得分:2)

count是一个全局变量。

您需要通过在函数内添加var count将其更改为局部变量。