在开发jQuery UI小部件时,我必须覆盖destroy并在任何嵌套的小部件上调用super.destroy或destroy。但什么时候/应该销毁?它是否被jQueryUI框架自动神奇地调用?或者它应该由客户端程序员调用(使用我的真棒小部件)?
例如,假设我有一个显示手风琴()的灯箱(fancybox)。假设手风琴正在fancybox'onStart回调中创建 - 因为灯箱即将显示。 应该在'on-lightbox-close'回调中调用手风琴('destroy')吗?似乎没必要......
答案 0 :(得分:4)
destroy
。
当你.remove()
来自DOM的元素“widgetized”时,UI也会调用它。
至于你的具体用例,取决于。是否会在该页面加载的生命周期的任何时候重新打开相同的灯箱实例?如果是这样,破坏只会增加开销,因为灯箱的下一个显示需要“重新组织化”。如果没有,那么不破坏会让记忆无缘无故地被占用。 (这假设您的灯箱关闭不会导致元素从DOM中删除)