2012-12-06 59 views
0

在「學習jQuery的第三版」我發現這幾行:jQuery UI的控件創建和銷燬

銷燬小部件....調用.myWidget(「摧毀」)將從頁面中刪除 進myWidget部件。小部件工廠的大部分工作都在 之間,但如果我們在_create內部修改了部分文檔(因爲我們在這裏做了 );所以我們需要自己清理。

但是,當創建一個新的小部件,我無法想象我們不會修改_create函數的情況。你能否給我舉個例子。

回答

1

這並不是說你修改了_create方法,而是說你是否修改了_create方法(或任何方法)中的文檔。

基部破壞方法做一些事情對於您包括:

  • 取消綁定附接到根元素this.element被微件下的命名空間的任何事件。
  • 從元素jQuery數據存儲中移除實例。
  • 刪除窗口小部件工廠在窗口小部件生命週期中可能添加的任何類。

任何超出此範圍的東西都需要通過擴展銷燬方法來清除。刪除附加到文檔的任何元素,解除與除this.element以外的其他節點綁定的任何事件(您可能已附加調整大小或滾動事件到窗口或文檔等)

0

如上所述。這個想法是,在destroy函數中刪除了_create函數中創建/附加的任何DOM操作或事件。

我附加修改實例的用於我創建了一個控制: http://pastebin.com/M9CzUajs

鏈接顯示了連接事件,特別是如何恢復的破壞和任何CSS修改怎麼也重新應用。在原始元素被隱藏的漸進式增強示例中,這是很常見的。