我有一个页面可以在joomla中创建几个mootools Accordion对象。 它是Jooma 1.5中的mootools 1.2.5
据我所知,javascript并不能提供查找某个类的所有实例的优雅方法。我必须修改代码以创建全局数组或每个实例的列表,每次创建新实例时都会附加这些实例,然后遍历此列表。
我想知道mootools是否有一个已经跟踪其对象集合的实用函数? (当我们扩展时,我想要折叠所有其他手风琴)
答案 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);
};