2011-11-20 54 views
0

我有一個頁面,它在joomla中創建了幾個mootools Accordion對象。 它是mootools 1.2.5在Jooma 1.5中mootools:找到Accordion對象的所有實例?

據我所知,JavaScript並沒有提供一個優雅的方式來查找某個類的所有實例。我不得不修改代碼來創建一個全局數組或每個實例的列表,每次創建一個新實例時都會附加這個實例,然後迭代這個列表。

我想知道mootools是否有一個已經跟蹤其對象集合的實用函數? (我想在展開其他手風琴時摺疊所有其他手風琴)

回答

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); 
}; 
+0

感謝。我決定使用窗口方法,並在必要時通過測試創建一個空列表。 –

相關問題