Jquery UI Widget创建和销毁

时间:2012-12-06 11:25:24

标签: jquery

在“学习Jquery第三版”中,我发现了以下几行:

  

销毁小部件....调用.myWidget('destroy')将删除   页面中的myWidget小部件。小部件工厂完成大部分工作   工作,但如果我们在_create中修改了部分文档(如   我们在这里做了);所以我们需要自己清理。

然而,在创建新的小部件时,我无法想象我们不修改_create函数的情况。你能给我一个这样做的例子。

2 个答案:

答案 0 :(得分:1)

这并不是说你是否修改了_create方法,而是说你是否在_create方法(或任何相关方法)中修改了文档。

基础破坏方法为您做了很多事情,包括:

  • 取消绑定附加到小部件下命名空间的根元素this.element的任何事件。
  • 从元素jQuery数据存储中删除实例。
  • 删除窗口小部件工厂在窗口小部件生命周期中可能附加的所有类。

除此之外的任何东西都需要通过扩展destroy方法来清理小部件本身,例如,删除附加到文档的任何元素,解除绑定到this.element以外的节点的任何事件(您可能已将调整大小或滚动事件附加到窗口或文档等)。

答案 1 :(得分:0)

如上所述。我们的想法是在destroy函数中删除在_create函数中创建/附加的任何DOM操作或事件。

我为我创建的控件添加了一个修改过的示例: http://pastebin.com/M9CzUajs

该链接显示了如何在destroy中恢复附加事件以及如何重新应用任何CSS修改。这在隐藏原始元素的渐进式增强示例中非常常见。