2012-12-17 21 views
1



我使用scriptaculous自动完成来创建一个可编辑字段的大页面,字段的数量是动态的,因此我创建一个数组来保存所有的自动完成对象。

然后,我需要允许用户在页面的每个位置添加一个字段,因此,我创建了一个JavaScript函数,用于重做文本字段的序列,并重新创建所有自动完成的。

但存在一个问题,即旧的自动完成功能也出现在页面上,即使将数组设置为零,旧的自动完成功能也是兔子。

有没有办法完全删除原型对象?有没有一种方法可以删除一个脚本化的自动完成对象?

回答

2

要删除您的DOM引用,你做

bigAutoCompleteObject = null; 
+0

谢谢,但那并没有解决我的问题,因为虽然它存储在一个数组中,但当我清空数组时,它不会从内存中删除。 – meilechh

+0

我用过,但对象仍在内存中。 – meilechh

+0

Alax;我很佩服你的努力来帮助我,但即使当我完全删除数组时,自动完成对象仍然存在于内存中(我的证据是,当我点击列表中的一个项目时,文本框被填充了两个次数相同)。我需要一些垃圾收集器方法来清理所有全局自动完成的对象。 – meilechh

3
  • autocompleter持有到输入字段和更新(有可能的选择弹出元素)
  • 输入字段和更新保持引用事件观察员(方法引用在自动完成对象中)

您至少需要清除存储在自动完成对象中的引用:

autocompleter.element = null; 
autocompleter.update = null; 
相关问题