2017-04-18 68 views
2

如果我在某些Element s上使用delete函數,那麼如何重新創建它們(如同使它們再次出現)?如何在Threepenny GUI中重新創建一個元素?

我看了看周圍的例子和文檔,但我找不到任何功能,可以讓我這樣做,除了可能mkElement這需要我通過它String。但由於我正在與Element s得到String這將創建它會有點困難。

那麼有沒有辦法做到這一點?

回答

2

鑑於delete的簽名爲delete :: Element -> UI(),因此當您撥打delete時,手頭上會有一個Element。爲什麼你不能堅持這個Element某處? (我的意思是以任何方式保持對它的引用。)然後,只需使用(#+) :: UI Element -> [UI Element] -> UI Element將它作爲孩子附加到其他元素。如果你只是想讓它重新出現在之前的地方,你只需要把它作爲一個孩子附加到它的父母開始的那個元素上。這是你想到的,還是我誤解了這個問題?

+0

謝謝!我完全忘了嘗試將它作爲子元素再次展示給他們。這樣可行。 –

3

(圖書館這裏筆者)

其實,delete功能並不僅僅是刪除DOM樹中的元素 - 它試圖刪除它的任何引用的JS和Haskell的一面。在delete之後,基本上這個元素是(應該是)不可用的。

如果你想暫時隱藏的元素,你可以

  • 通過CSS display屬性隱藏它。
  • 休息父元素的子元素,例如通過element parent # set children []
+0

哦,對,我沒有意識到它是這樣工作的。我會解決這個問題。雖然這樣寫入文檔會很好,因爲它沒有清楚地表明它們在'delete'之後不應該可用。 –

相關問題