1

我知道在开发 jQuery UI 小部件时,必须覆盖 destroy 并调用 super.destroy 或在任何嵌套的小部件上销毁。但是什么时候/应该销毁?jQueryUI 框架是否曾经自动调用它?还是应该由客户端程序员调用(使用我很棒的小部件)?

例如,假设我有一个显示手风琴()的灯箱(fancybox)。假设手风琴是在 fancybox 的 onStart 回调中创建的——因为灯箱即将显示。是否应该在“on-lightbox-close”回调中调用手风琴(“destroy”)?好像没必要...

4

1 回答 1

4

destroy当您想要销毁小部件时由您调用。

.remove()当您从 DOM 中获得“小部件化”的元素时,UI 也会调用它。

至于您的具体用例,这取决于。相同的灯箱实例会在该页面加载生命周期的未来任何时候重新打开吗?如果是这样,销毁只会增加开销,因为灯箱的下一次显示需要“重新小部件化”。如果不是,那么不破坏就会无缘无故地占用内存。(这假设关闭您的灯箱不会导致元素从 DOM 中删除)

于 2011-08-17T23:04:23.473 回答