Jquery UI Widget 创建和销毁



在"Learning Jquery Third Edition"中,我发现了这些行:

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

但是,在创建一个新的小部件时,我无法想象我们不修改_create函数的情况。你能给我举个例子吗?

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

基本销毁方法为您做了很多事情,包括:

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

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

同上。这个想法是在_create函数中创建/附加的任何 DOM 操作或事件都会在销毁函数中删除。

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

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

最新更新