在“学习Jquery第三版”中,我发现了以下几行:
销毁小部件....调用.myWidget('destroy')将删除 页面中的myWidget小部件。小部件工厂完成大部分工作 工作,但如果我们在_create中修改了部分文档(如 我们在这里做了);所以我们需要自己清理。
然而,在创建新的小部件时,我无法想象我们不修改_create函数的情况。你能给我一个这样做的例子。
答案 0 :(得分:1)
这并不是说你是否修改了_create
方法,而是说你是否在_create
方法(或任何相关方法)中修改了文档。
基础破坏方法为您做了很多事情,包括:
this.element
的任何事件。除此之外的任何东西都需要通过扩展destroy方法来清理小部件本身,例如,删除附加到文档的任何元素,解除绑定到this.element
以外的节点的任何事件(您可能已将调整大小或滚动事件附加到窗口或文档等)。
答案 1 :(得分:0)
如上所述。我们的想法是在destroy函数中删除在_create函数中创建/附加的任何DOM操作或事件。
我为我创建的控件添加了一个修改过的示例: http://pastebin.com/M9CzUajs
该链接显示了如何在destroy中恢复附加事件以及如何重新应用任何CSS修改。这在隐藏原始元素的渐进式增强示例中非常常见。