這是一個JavaScript/Ajax網頁(也使用jQuery)。針對ajax/javascript/jquery數據結構的建議頁面
我有我需要顯示的嵌套結構。在顯示頂級元素後,用戶可以點擊它並查看它下面的級別(動態生成)。
我不想預先生成所有內容並用display將其隱藏:none(頁面很複雜,我簡化了這個問題) - 我想從javascript數組中獲取顯示,阿賈克斯。
我的問題:
我有兩個選擇:
1:創建一個平面數組:一個元素我從陣列的ID的onclick
[ {id: xx, children: [ xx, xx, .. ] }, ....]
然後,找到孩子們,從陣列中拉出來並顯示出來。 (我想我會具有通過陣列進行搜索,因爲有在JavaScript沒有關聯數組 - 或使一個索引。)
2:創建嵌套數組:
{ id: xx, children [ { id: xx, children : [....] }, {....} ] }
然後以某種方式結合當我顯示數組中的子元素時,
我有兩個問題,第二種方法:
答:我經常複製陣列的大塊爲每一個孩子,當我創建它。 (至少我認爲我是,我需要使用深層複製嗎?我可以參考嗎?)
B:我不知道如何將數據綁定到子元素。通常我使用帶有onClicks的html字符串構建顯示,然後附加整個事物。但onClicks只能使用ID而不是數組的副本。
是否有可能在DOM中的隱藏元素內部構建(預顯示)此結構,而不是像這樣存儲一個複雜的數據片段? – 2011-03-22 13:25:42
佈局因點擊順序而異,所以很難預先渲染它。 – Ariel 2011-03-22 20:32:08
如果有人看到這個問題:不要使用選項2.我做了(起初),這是一場噩夢。你必須通過每一個可能調用另一個函數的函數一直帶有狀態。使用單個標識符製作一個簡單的列表,並在您的函數中傳遞該標識符。確保你可以找到一個孩子的父母(雙重鏈接)。我最終不得不花費大量的時間來重構所有的東西,因爲代碼變得難以管理。 – Ariel 2011-06-14 05:24:22