2012-03-28 209 views
1

我正在使用Mootols中的可排序菜單,並試圖實現'恢復'選項。我想出了一個相當簡單的解決方案:Mootools元素克隆

  1. 在開始時創建根元素克隆。
  2. 編輯菜單。
  3. 單擊撤消時: a)根元素用empty()清除。 b)我正在創建我的menuCopy元素子元素的另一個克隆。 c)根元素正在採用menuCopy子元素的克隆。

不知何故,它只能工作一次 - 之後,我的菜單副本變成空的根元素。到目前爲止,我沒有跟蹤這個問題。希望能得到幫助。下面是代碼的重要部分:

this.menuCopy = $(this.options.menu).clone(true,true); 

這部分被稱爲後:

一)初始化 B)保存菜單(所以需要恢復的可以追溯到存盤點)

$(self.options.menu).empty(); 
    var listContentsCopy=self.menuCopy.getChildren().clone(true,true); 
    $(self.options.menu).adopt(listContentsCopy); 
+0

發現錯誤: var listContentsCopy = self.menuCopy.getChildren()。clone(true,true); 應該是: var listContentsCopy = self.menuCopy.clone(true,true).getChildren(); 我知道這是愚蠢的! :) – 2012-03-28 13:40:30

回答

1

看着你這樣的代碼可能會更容易一些:

this.menuCopy = $(this.options.menu).getChildren().clone(true,true); 

那麼

$(self.options.menu).empty().adopt(this.menuCopy); 

只是一個想法,似乎有點輕,更容易閱讀。