0

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

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

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

4

2 回答 2

1

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

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

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

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

于 2013-02-03T11:25:43.333 回答
0

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

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

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

于 2013-02-03T11:45:11.260 回答