mootools:找到Accordion对象的所有实例?

时间:2011-11-20 12:17:37

标签: javascript mootools

我有一个页面可以在joomla中创建几个mootools Accordion对象。 它是Jooma 1.5中的mootools 1.2.5

据我所知,javascript并不能提供查找某个类的所有实例的优雅方法。我必须修改代码以创建全局数组或每个实例的列表,每次创建新实例时都会附加这些实例,然后遍历此列表。

我想知道mootools是否有一个已经跟踪其对象集合的实用函数? (当我们扩展时,我想要折叠所有其他手风琴)

1 个答案:

答案 0 :(得分:1)

许多mootools类在元素存储中保存对自己的引用。 Fx.Accordion并非如此。

你可以找到一个变量是否有Fx.accordion作为它的构造函数,但是不能保证会有这样的 - 只需运行类构造函数就可以保存一个引用。

最简单的事情可能是重构Fx.Accordion构造函数并让它在main元素或其中的任何地方写一个实例的副本 - 以保持引用。

例如,

var orig = Fx.Accordion.initialize;
Fx.Accordion.initialize = function() {
    orig.apply(this, arguments);
    this.element.store("accordion", this); // or... 
    // window.accordions.push(this);
};